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 17590 days, 6 hours, 54 minutes ago.