# dinkolas-Scope

Design PDF: dinkolas-praxinoscope-output

```void drawArtFrame (int whichFrame) { // Draw the artwork for a generic frame of the Praxinoscope, // given the framenumber (whichFrame) out of nFrames. // NOTE #1: The "origin" for the frame is in the center of the wedge. // NOTE #2: Remember that everything will appear upside-down!   //Intersection of two circles from johannesvalks on Stack Exchange stroke(128); strokeWeight(1); line(50,-29,-50,-29); stroke(0); strokeWeight(2); fill(0); float t = map(whichFrame, 0, nFrames, 0, 1); float segments = 6; for (float i = 0; i &lt; segments; i++) { float x1 = map(i,0,segments-1,-35,35); x1 += map(-sin(t*TWO_PI-i+.75),-1,1,-1,1); float y1 = map(cos(t*TWO_PI-i),-1,1,-10,0); ellipse(x1,y1,15,15); float x2 = map(-cos(t*TWO_PI-i),-1,1,x1+5,x1-5); float y2 = map(sin(t*TWO_PI-i),-1,1,-30,-20); y1 -= 15/2; y2 = max(y2,-27); float mult = sqrt(2*20/(pow((x1-x2),2)+pow((y1-y2),2))); float kneexLoc = ((x1+x2)+mult*(y2-y1))/2; float kneeyLoc = ((y1+y2)+mult*(x1-x2))/2; line(x1,y1,kneexLoc,kneeyLoc); line(kneexLoc,kneeyLoc,x2,y2); rect(x2-4,y2,4,1);   x2 = map(-cos(t*TWO_PI-i+2.5),-1,1,x1+5,x1-5); y2 = map(sin(t*TWO_PI-i+2.5),-1,1,-30,-20); y2 = max(y2,-27); kneexLoc = ((x1+x2)+mult*(y2-y1))/2; kneeyLoc = ((y1+y2)+mult*(x1-x2))/2; line(x1,y1,kneexLoc,kneeyLoc); line(kneexLoc,kneeyLoc,x2,y2); rect(x2-4,y2,4,1); }   }```