Cistercian numerals: Difference between revisions

Content added Content deleted
m (→‎{{header|FutureBasic}}: fix screenshot filename)
m (→‎{{header|FutureBasic}}: minor code improvement)
Line 2,080: Line 2,080:
end fn
end fn



void local fn PathDraw0( path as BezierPathRef, x as CGFloat, y as CGFloat )
BezierPathMoveToPoint( path, fn CGPointMake( x, y ) )
BezierPathLineToPoint( path, fn CGPointMake( x, y + _numHeight ) )
end fn


void local fn PathDraw1( path as BezierPathRef, x as CGFloat, y as CGFloat )
void local fn PathDraw1( path as BezierPathRef, x as CGFloat, y as CGFloat )
Line 2,149: Line 2,154:
for i = 0 to 3
for i = 0 to 3
BezierPathRef path = fn BezierPathWithRect( fn ViewBounds(_numView) )
BezierPathRef path = fn BezierPathWithRect( fn ViewBounds(_numView) )
BezierPathMoveToPoint( path, fn CGPointMake(x,y) )
fn PathDraw0( path, x, y )
BezierPathLineToPoint( path, fn CGPointMake( x, y + _numHeight ) )
long num = intval( mid( numString, i, 1 ) )
long num = intval( mid( numString, i, 1 ) )
Line 2,156: Line 2,160:
fn PathDrawNum( path, num, x, y )
fn PathDrawNum( path, num, x, y )
CGFloat xScale = 1.0, yScale = 1.0
if ( i < 3 )
CGFloat xScale = 1.0, yScale = 1.0
select ( i )
select ( i )
case 0 : xScale = -1.0 : yScale = -1.0 // 1000
case 0 : xScale = -1.0 : yScale = -1.0 // 1000
case 1 : yScale = -1.0 // 100
case 1 : yScale = -1.0 // 100
case 2 : xScale = -1.0 // 10
case 2 : xScale = -1.0 // 10
end select
case else // 1-9
// do nothing
end select
if ( xScale < 0.0 || yScale < 0.0 )
CGRect bounds = fn BezierPathBounds( path )
CGRect bounds = fn BezierPathBounds( path )
AffineTransformRef tx = fn AffineTransformInit
AffineTransformRef tx = fn AffineTransformInit