_Title "b+ mods vince fine Curves code" ' b+ 2022-02-01 Const sw
= 1024, sh
= 600 ' const shared everywhere
'put 'em all here
Dim As Long n
, r
, mx
, my
, mb
, omx
, omy
, i
, j
, vs
vs
= _NewImage(sw
, sh
, 32) ' vs for virtual screenr = 5 'gap checker?
Line (0, 0)-(sw
, sh
), &HFF000000, BF
n = 1
x(0) = mx - sw / 2
y(0) = sh / 2 - my
If (mx
- omx
) ^ 2 + (my
- omy
) ^ 2 > r
^ 2 Then circlef mx
, my
, 3, _RGB(30, 30, 30) omx = mx
omy = my
x(n) = mx - sw / 2
y(n) = sh / 2 - my
n = n + 1
'_Limit 30
'close the contour
'x(n) = x(0)
'y(n) = y(0)
'n = n + 1
'redim _preserve x(n)
'redim _preserve y(n)
'redraw spline
'pset (sw/2 + x(0), sh/2 - y(0))
'for i=0 to n
'line -(sw/2 + x(i), sh/2 - y(i)), _rgb(255,0,0)
'circlef sw/2 + x(i), sh/2 - y(i), 3, _rgb(255,0,0)
'next
PSet (sw
/ 2 + x
(0), sh
/ 2 - y
(0)) bx = 0
by = 0
bin = 1
bin = bin * (n - j) / j
bx = bx + bin * ((1 - t) ^ (n - 1 - i)) * (t ^ i) * x(i)
by = by + bin * ((1 - t) ^ (n - 1 - i)) * (t ^ i) * y(i)
Line -(sw
/ 2 + bx
, sh
/ 2 - by
), _RGB(255, 0, 0)
x0 = r
y0 = 0
e = -r
y0 = y0 + 1
Line (x
- x0
, y
+ y0
)-(x
+ x0
, y
+ y0
), c
, BF
Line (x
- x0
, y
- y0
)-(x
+ x0
, y
- y0
), c
, BF
e = e + 2 * y0
Line (x
- y0
, y
- x0
)-(x
+ y0
, y
- x0
), c
, BF
Line (x
- y0
, y
+ x0
)-(x
+ y0
, y
+ x0
), c
, BF
x0 = x0 - 1
e = e - 2 * x0
Line (x
- r
, y
)-(x
+ r
, y
), c
, BF