44 lines
1.6 KiB
Text
44 lines
1.6 KiB
Text
_window = 1
|
|
begin enum 1
|
|
_fractalView
|
|
end enum
|
|
|
|
local fn BuildWindow
|
|
window _window, @"Rosetta Code Fibonacci Word/Fractal", ( 0, 0, 640, 480 )
|
|
imageview _fractalView,,, ( 20, 20, 600, 440 ), NSImageScaleAxesIndependently, NSImageAlignCenter, NSImageFrameGrayBezel, _window
|
|
ViewSetWantsLayer( _fractalView, YES )
|
|
CALayerRef layer = fn ViewLayer( _fractalView )
|
|
CALayerSetBackgroundColor( layer, fn ColorWhite )
|
|
ViewRotateByAngle( _fractalView, 90 )
|
|
end fn
|
|
|
|
local fn CreateEPSFile as CFDataRef
|
|
NSUInteger i
|
|
|
|
CFStringRef header = @"%%!PS-Adobe-3.0 EPSF\n%%%%BoundingBox: 0 0 400 565\n¬
|
|
/a{0 0 moveto 0 .4 translate 0 0 lineto stroke -1 1 scale}def\n/b{a 90 rotate}def"
|
|
CFMutableStringRef mutStr = fn MutableStringWithString( header )
|
|
_cASCII = 99 : _zASCII = 122
|
|
for i = _cASCII to _zASCII
|
|
MutableStringAppendString( mutStr, fn StringWithFormat( @"/%c{%c %c}def\n", i, i - 1, i - 2 ) )
|
|
next
|
|
MutableStringAppendString( mutStr, @"0 setlinewidth z showpage\n%%EOF" )
|
|
CFDataRef epsData = fn StringData( mutStr, NSASCIIStringEncoding )
|
|
end fn = epsData
|
|
|
|
void local fn EPSDataToImageToView
|
|
CFDataRef epsData = fn CreateEPSFile
|
|
ImageRef epsImage = fn ImageWithData( epsData )
|
|
CGSize size = fn CGSizeMake( 405, 560 )
|
|
ImageRef cropImage = fn ImageWithSize( size )
|
|
ImageLockFocus( cropImage )
|
|
CGRect r = fn CGRectMake( 0, 0, size.width, size.height )
|
|
ImageDrawInRectFromRect( epsImage, r, fn CGRectMake( 0, 0, size.width, size.height ), NSCompositeCopy, 1.0 )
|
|
ImageUnlockFocus( cropImage )
|
|
ImageViewSetImage( _fractalView, cropImage )
|
|
end fn
|
|
|
|
fn BuildWindow
|
|
fn EPSDataToImageToView
|
|
|
|
HandleEvents
|