%scout window DoNaLDdefaultWin = { type: DONALD box: [{0, 0}, {500, 500}] pict: "DoNaLD" bgcolour: "white" border: 1 }; %donald point centre int outrad, midrad, innrad circle innc, midc, outc point inn1, inn2, inn3, inn4, inn5, inn6, inn7, inn8, inn9, inn10 point inn11, inn12, inn13, inn14, inn15, inn16, inn17, inn18, inn19, inn20 point inn21, inn22, inn23, inn24, inn25, inn26, inn27, inn28, inn29, inn30 point inn31, inn32, inn33, inn34, inn35, inn36, inn37, inn38 point out1, out2, out3, out4, out5, out6, out7, out8, out9, out10 point out11, out12, out13, out14, out15, out16, out17, out18, out19, out20 point out21, out22, out23, out24, out25, out26, out27, out28, out29, out30 point out31, out32, out33, out34, out35, out36, out37, out38 line spoke1, spoke2, spoke3, spoke4, spoke5, spoke6, spoke7, spoke8, spoke9, spoke10 line spoke11, spoke12, spoke13, spoke14, spoke15, spoke16, spoke17, spoke18, spoke19, spoke20 line spoke21, spoke22, spoke23, spoke24, spoke25, spoke26, spoke27, spoke28, spoke29, spoke30 line spoke31, spoke32, spoke33, spoke34, spoke35, spoke36, spoke37, spoke38 spoke1 = [inn1, out1] spoke2 = [inn2, out2] spoke3 = [inn3, out3] spoke4 = [inn4, out4] spoke5 = [inn5, out5] spoke6 = [inn6, out6] spoke7 = [inn7, out7] spoke8 = [inn8, out8] spoke9 = [inn9, out9] spoke10 = [inn10, out10] spoke11 = [inn11, out11] spoke12 = [inn12, out12] spoke13 = [inn13, out13] spoke14 = [inn14, out14] spoke15 = [inn15, out15] spoke16 = [inn16, out16] spoke17 = [inn17, out17] spoke18 = [inn18, out18] spoke19 = [inn19, out19] spoke20 = [inn20, out20] spoke21 = [inn21, out21] spoke22 = [inn22, out22] spoke23 = [inn23, out23] spoke24 = [inn24, out24] spoke25 = [inn25, out25] spoke26 = [inn26, out26] spoke27 = [inn27, out27] spoke28 = [inn28, out28] spoke29 = [inn29, out29] spoke30 = [inn30, out30] spoke31 = [inn31, out31] spoke32 = [inn32, out32] spoke33 = [inn33, out33] spoke34 = [inn34, out34] spoke35 = [inn35, out35] spoke36 = [inn36, out36] spoke37 = [inn37, out37] spoke38 = [inn38, out38] point chev1L, chev1R, chev1V point chev2L, chev2R, chev2V point chev3L, chev3R, chev3V point chev4L, chev4R, chev4V point chev5L, chev5R, chev5V point chev6L, chev6R, chev6V point chev7L, chev7R, chev7V point chev8L, chev8R, chev8V point chev9L, chev9R, chev9V line chev1LV, chev1RV line chev2LV, chev2RV line chev3LV, chev3RV line chev4LV, chev4RV line chev5LV, chev5RV line chev6LV, chev6RV line chev7LV, chev7RV line chev8LV, chev8RV line chev9LV, chev9RV chev1LV = [chev1L, chev1V] chev2LV = [chev2L, chev2V] chev3LV = [chev3L, chev3V] chev4LV = [chev4L, chev4V] chev5LV = [chev5L, chev5V] chev6LV = [chev6L, chev6V] chev7LV = [chev7L, chev7V] chev8LV = [chev8L, chev8V] chev9LV = [chev9L, chev9V] chev1RV = [chev1R, chev1V] chev2RV = [chev2R, chev2V] chev3RV = [chev3R, chev3V] chev4RV = [chev4R, chev4V] chev5RV = [chev5R, chev5V] chev6RV = [chev6R, chev6V] chev7RV = [chev7R, chev7V] chev8RV = [chev8R, chev8V] chev9RV = [chev9R, chev9V] centre = {500,500} innc = circle(centre, innrad) midc = circle(centre, midrad) outc = circle(centre, outrad) innrad = 200 midrad = 300 outrad = 400 real chevsubtend chevsubtend = 0.1 ## chev1V = centre + {(midrad+outrad) div 2 @ (pi div 2)} ## chev1V = centre + {midrad @ (pi div 2)} chev1L = centre + {outrad @ ((pi + chevsubtend) div 2)} chev1R = centre + {outrad @ ((pi - chevsubtend) div 2)} boolean locked1 int radchev1V radchev1V = if (locked1) then midrad else (midrad+outrad) div 2 locked1 = false chev1V = centre + {radchev1V @ (pi div 2)} boolean locked2 int radchev2V radchev2V = if (locked2) then midrad else (midrad+outrad) div 2 locked2 = false boolean locked3 int radchev3V radchev3V = if (locked3) then midrad else (midrad+outrad) div 2 locked3 = false boolean locked4 int radchev4V radchev4V = if (locked4) then midrad else (midrad+outrad) div 2 locked4 = false boolean locked5 int radchev5V radchev5V = if (locked5) then midrad else (midrad+outrad) div 2 locked5 = false boolean locked6 int radchev6V radchev6V = if (locked6) then midrad else (midrad+outrad) div 2 locked6 = false boolean locked7 int radchev7V radchev7V = if (locked7) then midrad else (midrad+outrad) div 2 locked7 = false boolean locked8 int radchev8V radchev8V = if (locked8) then midrad else (midrad+outrad) div 2 locked8 = false boolean locked9 int radchev9V radchev9V = if (locked9) then midrad else (midrad+outrad) div 2 locked9 = false chev2L = centre + {outrad @ ((pi + chevsubtend) div 2 - 2*pi div 9)} chev2R = centre + {outrad @ ((pi - chevsubtend) div 2 - 2*pi div 9)} chev2V = centre + {radchev2V @ (pi div 2 - 2*pi div 9)} chev3L = centre + {outrad @ ((pi + chevsubtend) div 2 - (3-1)*2*pi div 9)} chev3R = centre + {outrad @ ((pi - chevsubtend) div 2 - (3-1)*2*pi div 9)} chev3V = centre + {radchev3V @ (pi div 2 - (3-1)*2*pi div 9)} chev4L = centre + {outrad @ ((pi + chevsubtend) div 2 - (4-1)*2*pi div 9)} chev4R = centre + {outrad @ ((pi - chevsubtend) div 2 - (4-1)*2*pi div 9)} chev4V = centre + {radchev4V @ (pi div 2 - (4-1)*2*pi div 9)} chev5L = centre + {outrad @ ((pi + chevsubtend) div 2 - (5-1)*2*pi div 9)} chev5R = centre + {outrad @ ((pi - chevsubtend) div 2 - (5-1)*2*pi div 9)} chev5V = centre + {radchev5V @ (pi div 2 - (5-1)*2*pi div 9)} chev6L = centre + {outrad @ ((pi + chevsubtend) div 2 - (6-1)*2*pi div 9)} chev6R = centre + {outrad @ ((pi - chevsubtend) div 2 - (6-1)*2*pi div 9)} chev6V = centre + {radchev6V @ (pi div 2 - (6-1)*2*pi div 9)} chev7L = centre + {outrad @ ((pi + chevsubtend) div 2 - (7-1)*2*pi div 9)} chev7R = centre + {outrad @ ((pi - chevsubtend) div 2 - (7-1)*2*pi div 9)} chev7V = centre + {radchev7V @ (pi div 2 - (7-1)*2*pi div 9)} chev8L = centre + {outrad @ ((pi + chevsubtend) div 2 - (8-1)*2*pi div 9)} chev8R = centre + {outrad @ ((pi - chevsubtend) div 2 - (8-1)*2*pi div 9)} chev8V = centre + {radchev8V @ (pi div 2 - (8-1)*2*pi div 9)} chev9L = centre + {outrad @ ((pi + chevsubtend) div 2 - (9-1)*2*pi div 9)} chev9R = centre + {outrad @ ((pi - chevsubtend) div 2 - (9-1)*2*pi div 9)} chev9V = centre + {radchev9V @ (pi div 2 - (9-1)*2*pi div 9)} real theta1, theta2, theta3, theta4, theta5, theta6, theta7, theta8, theta9, theta10 real theta11, theta12, theta13, theta14, theta15, theta16, theta17, theta18, theta19, theta20 real theta21, theta22, theta23, theta24, theta25, theta26, theta27, theta28, theta29, theta30 real theta31, theta32, theta33, theta34, theta35, theta36, theta37, theta38 inn1 = centre + {innrad @ theta1} out1 = centre + {midrad @ theta1} inn2 = centre + {innrad @ theta2} out2 = centre + {midrad @ theta2} inn3 = centre + {innrad @ theta3} out3 = centre + {midrad @ theta3} inn4 = centre + {innrad @ theta4} out4 = centre + {midrad @ theta4} inn5 = centre + {innrad @ theta5} out5 = centre + {midrad @ theta5} inn6 = centre + {innrad @ theta6} out6 = centre + {midrad @ theta6} inn7 = centre + {innrad @ theta7} out7 = centre + {midrad @ theta7} inn8 = centre + {innrad @ theta8} out8 = centre + {midrad @ theta8} inn9 = centre + {innrad @ theta9} out9 = centre + {midrad @ theta9} inn10 = centre + {innrad @ theta10} out10 = centre + {midrad @ theta10} inn11 = centre + {innrad @ theta11} out11 = centre + {midrad @ theta11} inn12 = centre + {innrad @ theta12} out12 = centre + {midrad @ theta12} inn13 = centre + {innrad @ theta13} out13 = centre + {midrad @ theta13} inn14 = centre + {innrad @ theta14} out14 = centre + {midrad @ theta14} inn15 = centre + {innrad @ theta15} out15 = centre + {midrad @ theta15} inn16 = centre + {innrad @ theta16} out16 = centre + {midrad @ theta16} inn17 = centre + {innrad @ theta17} out17 = centre + {midrad @ theta17} inn18 = centre + {innrad @ theta18} out18 = centre + {midrad @ theta18} inn19 = centre + {innrad @ theta19} out19 = centre + {midrad @ theta19} inn20 = centre + {innrad @ theta20} out20 = centre + {midrad @ theta20} inn21 = centre + {innrad @ theta21} out21 = centre + {midrad @ theta21} inn22 = centre + {innrad @ theta22} out22 = centre + {midrad @ theta22} inn23 = centre + {innrad @ theta23} out23 = centre + {midrad @ theta23} inn24 = centre + {innrad @ theta24} out24 = centre + {midrad @ theta24} inn25 = centre + {innrad @ theta25} out25 = centre + {midrad @ theta25} inn26 = centre + {innrad @ theta26} out26 = centre + {midrad @ theta26} inn27 = centre + {innrad @ theta27} out27 = centre + {midrad @ theta27} inn28 = centre + {innrad @ theta28} out28 = centre + {midrad @ theta28} inn29 = centre + {innrad @ theta29} out29 = centre + {midrad @ theta29} inn30 = centre + {innrad @ theta30} out30 = centre + {midrad @ theta30} inn31 = centre + {innrad @ theta31} out31 = centre + {midrad @ theta31} inn32 = centre + {innrad @ theta32} out32 = centre + {midrad @ theta32} inn33 = centre + {innrad @ theta33} out33 = centre + {midrad @ theta33} inn34 = centre + {innrad @ theta34} out34 = centre + {midrad @ theta34} inn35 = centre + {innrad @ theta35} out35 = centre + {midrad @ theta35} inn36 = centre + {innrad @ theta36} out36 = centre + {midrad @ theta36} inn37 = centre + {innrad @ theta37} out37 = centre + {midrad @ theta37} inn38 = centre + {innrad @ theta38} out38 = centre + {midrad @ theta38} real angle theta1 = angle angle = pi div 2 theta2 = theta1 + (2-1) * pi div 19 theta3 = theta1 + (3-1) * pi div 19 theta4 = theta1 + (4-1) * pi div 19 theta5 = theta1 + (5-1) * pi div 19 theta6 = theta1 + (6-1) * pi div 19 theta7 = theta1 + (7-1) * pi div 19 theta8 = theta1 + (8-1) * pi div 19 theta9 = theta1 + (9-1) * pi div 19 theta10 = theta1 + (10-1) * pi div 19 theta11 = theta1 + (11-1) * pi div 19 theta12 = theta1 + (12-1) * pi div 19 theta13 = theta1 + (13-1) * pi div 19 theta14 = theta1 + (14-1) * pi div 19 theta15 = theta1 + (15-1) * pi div 19 theta16 = theta1 + (16-1) * pi div 19 theta17 = theta1 + (17-1) * pi div 19 theta18 = theta1 + (18-1) * pi div 19 theta19 = theta1 + (19-1) * pi div 19 theta20 = theta1 + (20-1) * pi div 19 theta21 = theta1 + (21-1) * pi div 19 theta22 = theta1 + (22-1) * pi div 19 theta23 = theta1 + (23-1) * pi div 19 theta24 = theta1 + (24-1) * pi div 19 theta25 = theta1 + (25-1) * pi div 19 theta26 = theta1 + (26-1) * pi div 19 theta27 = theta1 + (27-1) * pi div 19 theta28 = theta1 + (28-1) * pi div 19 theta29 = theta1 + (29-1) * pi div 19 theta30 = theta1 + (30-1) * pi div 19 theta31 = theta1 + (31-1) * pi div 19 theta32 = theta1 + (32-1) * pi div 19 theta33 = theta1 + (33-1) * pi div 19 theta34 = theta1 + (34-1) * pi div 19 theta35 = theta1 + (35-1) * pi div 19 theta36 = theta1 + (36-1) * pi div 19 theta37 = theta1 + (37-1) * pi div 19 theta38 = theta1 + (38-1) * pi div 19 label l1, l2, l3, l4, l5, l6, l7, l8, l9, l10 label l11, l12, l13, l14, l15, l16, l17, l18, l19, l20 label l21, l22, l23, l24, l25, l26, l27, l28, l29, l30 label l31, l32, l33, l34, l35, l36, l37, l38 l1 = label("1", (out1 + inn2) div 2) l2 = label("2", (out2 + inn3) div 2) l3 = label("3", (out3 + inn4) div 2) l4 = label("4", (out4 + inn5) div 2) l5 = label("5", (out5 + inn6) div 2) l6 = label("6", (out6 + inn7) div 2) l7 = label("7", (out7 + inn8) div 2) l8 = label("8", (out8 + inn9) div 2) l9 = label("9", (out9 + inn10) div 2) l10 = label("10", (out10 + inn11) div 2) l11 = label("11", (out11 + inn12) div 2) l12 = label("12", (out12 + inn13) div 2) l13 = label("13", (out13 + inn14) div 2) l14 = label("14", (out14 + inn15) div 2) l15 = label("15", (out15 + inn16) div 2) l16 = label("16", (out16 + inn17) div 2) l17 = label("17", (out17 + inn18) div 2) l18 = label("18", (out18 + inn19) div 2) l19 = label("19", (out19 + inn20) div 2) l20 = label("20", (out20 + inn21) div 2) l21 = label("21", (out21 + inn22) div 2) l22 = label("22", (out22 + inn23) div 2) l23 = label("23", (out23 + inn24) div 2) l24 = label("24", (out24 + inn25) div 2) l25 = label("25", (out25 + inn26) div 2) l26 = label("26", (out26 + inn27) div 2) l27 = label("27", (out27 + inn28) div 2) l28 = label("28", (out28 + inn29) div 2) l29 = label("29", (out29 + inn30) div 2) l30 = label("30", (out30 + inn31) div 2) l31 = label("31", (out31 + inn32) div 2) l32 = label("32", (out32 + inn33) div 2) l33 = label("33", (out33 + inn34) div 2) l34 = label("34", (out34 + inn35) div 2) l35 = label("35", (out35 + inn36) div 2) l36 = label("36", (out36 + inn37) div 2) l37 = label("37", (out37 + inn38) div 2) l38 = label("38", (out38 + inn1) div 2) angle = 2 * pi div 19 ## aligns a particular symbol (7) with chevron 1 label lc1, lc2, lc3, lc4, lc5, lc6, lc7, lc8, lc9 lc1 = label("1", centre + (chev1V-centre) * 1.2) lc2 = label("2", centre + (chev9V-centre) * 1.2) lc3 = label("3", centre + (chev8V-centre) * 1.2) lc4 = label("4", centre + (chev7V-centre) * 1.2) lc5 = label("5", centre + (chev6V-centre) * 1.2) lc6 = label("6", centre + (chev5V-centre) * 1.2) lc7 = label("7", centre + (chev4V-centre) * 1.2) lc8 = label("8", centre + (chev3V-centre) * 1.2) lc9 = label("9", centre + (chev2V-centre) * 1.2) %eden A_innc = "fill=solid,color=lightblue"; /* for (i=1; i<=1000; i++) { _angle = i*0.001*2*PI; eager(); } for (i=1; i<=342; i++) { _angle = i*2*PI/342; eager(); } */ %scout window DoNaLDdefaultWin = { type: DONALD box: [{0, 0}, {500, 500}] pict: "DoNaLD" bgcolour: "white" border: 1 };