basis-processing 0.5.7 → 0.5.8
Sign up to get free protection for your applications and to get access to all the features.
- data/basis.gemspec +1 -1
- data/lib/screen.rb +19 -11
- metadata +4 -4
data/basis.gemspec
CHANGED
data/lib/screen.rb
CHANGED
@@ -38,6 +38,19 @@ class Screen
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
+
def at(point, &block)
|
42
|
+
if (!point[:x] || !point[:y])
|
43
|
+
@artist.reset_matrix
|
44
|
+
block.call(point, self) if block
|
45
|
+
return
|
46
|
+
end
|
47
|
+
p = transformed(point)
|
48
|
+
if (block)
|
49
|
+
@artist.reset_matrix
|
50
|
+
block.call(point, p, self)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
41
54
|
def plot(point, options = {:bar => false, :track => false}, &block)
|
42
55
|
if (!point[:x] || !point[:y])
|
43
56
|
@artist.reset_matrix
|
@@ -55,8 +68,7 @@ class Screen
|
|
55
68
|
@artist.ellipse(p[:x], p[:y], 5, 5)
|
56
69
|
end
|
57
70
|
@artist.line(standard_x_axis_point[:x], standard_x_axis_point[:y], p[:x], p[:y]) if options[:bar]
|
58
|
-
|
59
|
-
@artist.line(@buffer[:x], @buffer[:y], p[:x], p[:y]) if @buffer
|
71
|
+
@artist.line(@buffer[:x], @buffer[:y], p[:x], p[:y]) if @should_join && @buffer
|
60
72
|
@buffer = p
|
61
73
|
end
|
62
74
|
|
@@ -72,20 +84,16 @@ class Screen
|
|
72
84
|
end
|
73
85
|
|
74
86
|
def transformed(data_point)
|
75
|
-
# standard_point = @basis.standard_basis(data_point)
|
76
|
-
# @transform.apply(standard_point)
|
77
87
|
transformed_p = @affine_transform.mult([data_point[:x], data_point[:y]].to_java(:float), nil)
|
78
88
|
{:x => transformed_p[0], :y => transformed_p[1]}
|
79
89
|
end
|
80
90
|
|
81
91
|
def original(onscreen_point)
|
82
|
-
# p = @transform.unapply(onscreen_point)
|
83
|
-
# @basis.original(p)
|
84
92
|
transformed_p = @inverse_affine_transform.mult([onscreen_point[:x], onscreen_point[:y]].to_java(:float), nil)
|
85
93
|
{:x => transformed_p[0], :y => transformed_p[1]}
|
86
94
|
end
|
87
95
|
|
88
|
-
def draw_ticks(ticks, displacement)
|
96
|
+
def draw_ticks(ticks, displacement, block)
|
89
97
|
ticks.each do |l|
|
90
98
|
from = l[:from]
|
91
99
|
to = l[:to]
|
@@ -93,7 +101,7 @@ class Screen
|
|
93
101
|
to = {:x => from[:x] + tick_vector[:x], :y => from[:y] + tick_vector[:y]}
|
94
102
|
@artist.line(from[:x],from[:y],to[:x],to[:y])
|
95
103
|
@artist.fill(1)
|
96
|
-
@artist.text(l[:label], to[:x]+displacement[:x], to[:y]+displacement[:y])
|
104
|
+
@artist.text((block ? block.call(l[:label]) : l[:label]), to[:x]+displacement[:x], to[:y]+displacement[:y])
|
97
105
|
end
|
98
106
|
end
|
99
107
|
|
@@ -103,7 +111,7 @@ class Screen
|
|
103
111
|
{:x => 5*vector[:x]/magnitude, :y => 5*vector[:y]/magnitude}
|
104
112
|
end
|
105
113
|
|
106
|
-
def draw_axes(x_interval, y_interval)
|
114
|
+
def draw_axes(x_interval, y_interval, labelling_blocks = {})
|
107
115
|
f = @artist.createFont("Georgia", 24, true);
|
108
116
|
@artist.text_font(f,16)
|
109
117
|
axis_screen_transform = Transform.new({:x => 800, :y => -800}, @transform.origin)
|
@@ -121,8 +129,8 @@ class Screen
|
|
121
129
|
@artist.line(x_ticks.first[:from][:x],x_ticks.first[:from][:y],x_ticks.last[:from][:x],x_ticks.last[:from][:y])
|
122
130
|
@artist.line(y_ticks.first[:from][:x],y_ticks.first[:from][:y],y_ticks.last[:from][:x],y_ticks.last[:from][:y])
|
123
131
|
|
124
|
-
draw_ticks(x_ticks, {:x => 0, :y => 20})
|
125
|
-
draw_ticks(y_ticks, {:x => -50, :y => 0})
|
132
|
+
draw_ticks(x_ticks, {:x => 0, :y => 20}, labelling_blocks[:x])
|
133
|
+
draw_ticks(y_ticks, {:x => -50, :y => 0}, labelling_blocks[:y])
|
126
134
|
|
127
135
|
@artist.stroke(0.4, 1.0, 0.5, 0.2)
|
128
136
|
grid_lines = @basis.grid_lines(x_interval, y_interval).collect {|gl| {:from => @transform.apply(gl[:from]), :to => @transform.apply(gl[:to])}}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: basis-processing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-10-
|
12
|
+
date: 2011-10-11 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: knnball
|
16
|
-
requirement: &
|
16
|
+
requirement: &17679680 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: 0.0.6
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *17679680
|
25
25
|
description: Basis provides a set of classes for easily plotting and transforming
|
26
26
|
arbitrary 2D coordinate systems by specifying their basis vectors in Ruby-Processing.
|
27
27
|
email: avishek.sen.gupta@gmail.com
|