9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/IFMapper/FXSpline.rb', line 9
def self.bspline_solve( r, p, num )
ax = -OS * p[0][0] + 0.5 * p[1][0] - 0.5 * p[2][0] + OS * p[3][0]
bx = 0.5 * p[0][0] - p[1][0] + 0.5 * p[2][0]
cx = -0.5 * p[0][0] + 0.5 * p[2][0]
dx = OS * p[0][0] + FS * p[1][0] + OS * p[2][0]
ay = -OS * p[0][1] + 0.5 * p[1][1] - 0.5 * p[2][1] + OS * p[3][1]
by = 0.5 * p[0][1] - p[1][1] + 0.5 * p[2][1]
cy = -0.5 * p[0][1] + 0.5 * p[2][1]
dy = OS * p[0][1] + FS * p[1][1] + OS * p[2][1]
t = 0.0
tinc = 1.0 / num
0.upto(num) {
x = t * (t * (t * ax + bx) + cx) + dx
y = t * (t * (t * ay + by) + cy) + dy
r << [ x, y ]
t += tinc
}
end
|