Computer Science Canada a shape class so you dont have to keep typing in the shape

Author:  kit-kat-kid [ Wed May 05, 2004 5:36 pm ]
Post subject:  a shape class so you dont have to keep typing in the shape

 code: %File "ShapeCl"the Shape Class unit class ShapeCl     export Circle, Ball, Square, Block, TiltSquare, Moon, Star,         MapleLeaf     proc Circle (xc, yc, radius, clr : int)         Draw.Oval (xc, yc, radius, radius, clr)     end Circle     proc Ball (xc, yc, radius, clr : int)         Draw.FillOval (xc, yc, radius, radius, clr)     end Ball     proc Square (x, y, size, clr : int)         Draw.Box (x, y, size, size, clr)     end Square     proc Block (x,y, size, clr: int)     Draw.FillBox (x, y, size,size,  clr)     end Block     proc TiltSquare (x1, y1, size, angle, clr : int)         %compute 4 constants for the corners:         const a := round (size * cosd (angle))         const b := round (size * sind (angle))         const c := round (size * sqrt (2) * cosd (45 + angle))         const d := round (size * sqrt (2) * sind (45 + angle))         %compute corners         const x2 := x1 + a         const y2 := y1 + b         const x3 := x1 + c         const y3 := y1 + d         const x4 := x1 - b         const y4 := y1 + a         %draw the square         Draw.Line (x1, y1, x2, y2, clr)         Draw.Line (x2, y2, x3, y3, clr)         Draw.Line (x3, y3, x4, y4, clr)         Draw.Line (x4, y4, x1, y1, clr)     end TiltSquare     proc Moon (xc, yc, size, clr : int)         for angle : 0 .. 360 by 10             TiltSquare (xc, yc, size, angle, clr)         end for     end Moon     proc Star (x1, y1, x2, y2, clr : int)         Draw.FillStar (x1, y1, x2, y2, clr)     end Star     proc MapleLeaf (x1, y1, x2, y2, clr : int)         Draw.FillMapleLeaf (x1, y1, x2, y2, clr)     end MapleLeaf end ShapeCl

 :