derbyDraw.frink

View or download derbyDraw.frink in plain text format


use Derby.frink

/** This program draws and tests the roller derby coordinate system defined
    in Derby.frink. */

black = new color[0,0,0]
blue = new color[0,0,1]
gray = new color[0,0,0,.5]
g = new graphics

g.translate[12.5,0]

for d = 0 to Derby.d4 step 1    // This gives one entire loop of the track
{
   g.color[black]
   [x,y] = Derby.WDtoXY[0,d]  // Inside of track
//   println["$x $y"]
   g.fillEllipseCenter[x,y,.5,.5]


   [x,y] = Derby.WDtoXY[1,d]  // Outside of track
//   println["1 $d $x $y"]
   g.fillEllipseCenter[x,y,.5,.5]

   g.color[gray]
   [x,y] = Derby.WDtoXY[0.5,d]  // Middle of track
//   println["$x $y"]
   g.fillEllipseCenter[x,y,.5,.5]
   
   g.color[blue]
   [x,y] = Derby.WDtoXY[Derby.effectiveW, d]  // Effective middle of track.
   g.fillEllipseCenter[x,y,.5,.5]
}

/* Draw 10-foot lines all the way around the track.
   Note that the jammer line is at d=5 so we start there. */

for d=5 to Derby.d4+5 step 10
{
   [x1,y1] = Derby.WDtoXY[0, d]
   [x2,y2] = Derby.WDtoXY[1, d]
   g.line[x1, y1, x2, y2]
}

// Redraw the jammer line and pivot line in red.
g.color[1,0,0,.8]
// Jammer line is w=[0,1], d=5.
[x1,y1] = Derby.WDtoXY[0,5]
[x2,y2] = Derby.WDtoXY[1,5]
g.line[x1,y1,x2,y2]

// Pivot line is w=[0,1], d=35.
[x1,y1] = Derby.WDtoXY[0,35]
[x2,y2] = Derby.WDtoXY[1,35]
g.line[x1,y1,x2,y2]1

g.write["derby.html", 800, 1000]

/** This is just some testing to generate random x/y coordinates and do
    round-trip conversions between w,d coordinates to make sure that
    conversions are working in both directions and symmetrical. */

for a=1 to 1000
{
//   x = randomFloat[-27.5,27.5]
   x = randomFloat[-40,40]
   y = randomFloat[-80,80]
   [w,d]    = Derby.XYtoWD[x,y]
   [x1, y1] = Derby.WDtoXY[w,d]
//   println["$x $y $x1 $y1"]
   dist = sqrt[(x-x1)^2 + (y-y1)^2]
   if dist > .01
   {
      println["dist is $dist"]
      println["$x $y $w $d"]
      g.line[x,y,x1,y1]
   }
}

g.show[]


View or download derbyDraw.frink in plain text format


This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 17989 days, 12 hours, 34 minutes ago.