29 lines
784 B
Plaintext
29 lines
784 B
Plaintext
#define ORDER 64
|
|
|
|
_window = 1
|
|
|
|
void local fn BuildWindow
|
|
CGRect r = fn CGRectMake( 0, 0, 651, 661 )
|
|
window _window, @"Order 64 Hilbert Curve In FutureBasic", r, NSWindowStyleMaskTitled
|
|
WindowSetBackgroundColor( _window, fn ColorBlack )
|
|
end fn
|
|
|
|
void local fn HilbertCurve( x as long, y as long, lg as long, i1 as long, i2 as long )
|
|
if ( lg == 1 )
|
|
line to ( ORDER-x ) * 10, ( ORDER-y ) * 10
|
|
exit fn
|
|
end if
|
|
lg = lg / 2
|
|
fn HilbertCurve( x+i1*lg, y+i1*lg, lg, i1, 1-i2 )
|
|
pen 2.0
|
|
fn HilbertCurve( x+i2*lg, y+(1-i2)*lg, lg, i1, i2 )
|
|
fn HilbertCurve( x+(1-i1)*lg, y+(1-i1)*lg, lg, i1, i2 )
|
|
fn HilbertCurve( x+(1-i2)*lg, y+i2*lg, lg, 1-i1, i2 )
|
|
end fn
|
|
|
|
fn BuildWindow
|
|
pen -2.0, fn ColorGreen
|
|
fn HilbertCurve( 0, 0, ORDER, 0, 0 )
|
|
|
|
HandleEvents
|