/* Draws a line object of nodes and edges. You can rotate it about the centre of the screen using the arrow keys or by dragging the mouse. */ // Move to centre of screen translate(200, 200); scale(2,2); stroke(2, 4, 10); // Speed of rotation var rotateAngle = PI; // Coordinates for teapot var nodes = [[40.6,28.3,-1.1], [40.1,30.4,-1.1], [40.7,31.1,-1.1], [42.0,30.4,-1.1], [43.5,28.3,-1.1], [37.5,28.3,14.5], [37.0,30.4,14.3], [37.6,31.1,14.5], [38.8,30.4,15.1], [40.2,28.3,15.6], [29.1,28.3,27.1], [28.7,30.4,26.8], [29.1,31.1,27.2], [30.1,30.4,28.1], [31.1,28.3,29.2], [16.5,28.3,35.6], [16.2,30.4,35.1], [16.5,31.1,35.7], [17.0,30.4,36.9], [17.6,28.3,38.2], [0.8,28.3,38.7], [0.8,30.4,38.1], [0.8,31.1,38.8], [0.8,30.4,40.1], [0.8,28.3,41.5], [-15.9,28.3,35.6], [-15.0,30.4,35.1], [-15.0,31.1,35.7], [-15.4,30.4,36.9], [-15.9,28.3,38.2], [-28.4,28.3,27.1], [-27.4,30.4,26.8], [-27.6,31.1,27.2], [-28.4,30.4,28.1], [-29.4,28.3,29.2], [-36.2,28.3,14.5], [-35.5,30.4,14.3], [-36.0,31.1,14.5], [-37.2,30.4,15.1], [-38.5,28.3,15.6], [-39.0,28.3,-1.1], [-38.4,30.4,-1.1], [-39.1,31.1,-1.1], [-40.4,30.4,-1.1], [-41.8,28.3,-1.1], [-35.9,28.3,-16.7], [-35.4,30.4,-16.5], [-36.0,31.1,-16.8], [-37.2,30.4,-17.3], [-38.5,28.3,-17.8], [-27.4,28.3,-29.4], [-27.0,30.4,-29.0], [-27.5,31.1,-29.4], [-28.4,30.4,-30.4], [-29.4,28.3,-31.4], [-14.8,28.3,-37.8], [-14.6,30.4,-37.3], [-14.8,31.1,-37.9], [-15.3,30.4,-39.1], [-15.9,28.3,-40.4], [0.8,28.3,-40.9], [0.8,30.4,-40.3], [0.8,31.1,-41.0], [0.8,30.4,-42.3], [0.8,28.3,-43.7], [16.5,28.3,-37.8], [16.2,30.4,-37.3], [16.5,31.1,-37.9], [17.0,30.4,-39.1], [17.6,28.3,-40.4], [29.1,28.3,-29.4], [28.7,30.4,-29.0], [29.1,31.1,-29.4], [30.1,30.4,-30.4], [31.1,28.3,-31.4], [37.5,28.3,-16.7], [37.0,30.4,-16.5], [37.6,31.1,-16.8], [38.8,30.4,-17.3], [40.2,28.3,-17.8], [48.7,17.2,-1.1], [53.2,6.2,-1.1], [56.5,-4.3,-1.1], [57.7,-14.3,-1.1], [45.0,17.2,17.7], [49.2,6.2,19.5], [52.1,-4.3,20.7], [53.3,-14.3,21.2], [34.8,17.2,32.9], [38.0,6.2,36.1], [40.3,-4.3,38.4], [41.2,-14.3,39.3], [19.6,17.2,43.0], [21.4,6.2,47.2], [22.7,-4.3,50.2], [23.1,-14.3,51.3], [0.8,17.2,46.7], [0.8,6.2,51.3], [0.8,-4.3,54.5], [0.8,-14.3,55.7], [-18.0,17.2,43.0], [-19.7,6.2,47.2], [-21.0,-4.3,50.2], [-21.5,-14.3,51.3], [-33.1,17.2,32.9], [-36.4,6.2,36.1], [-38.7,-4.3,38.4], [-39.5,-14.3,39.3], [-43.3,17.2,17.7], [-47.5,6.2,19.5], [-50.5,-4.3,20.7], [-51.6,-14.3,21.2], [-47.0,17.2,-1.1], [-51.6,6.2,-1.1], [-54.8,-4.3,-1.1], [-56.0,-14.3,-1.1], [-43.3,17.2,-19.9], [-47.5,6.2,-21.7], [-50.5,-4.3,-22.9], [-51.6,-14.3,-23.4], [-33.1,17.2,-35.1], [-36.4,6.2,-38.3], [-38.7,-4.3,-40.6], [-39.5,-14.3,-41.5], [-18.0,17.2,-45.3], [-19.7,6.2,-49.5], [-21.0,-4.3,-52.4], [-21.5,-14.3,-53.6], [0.8,17.2,-49.0], [0.8,6.2,-53.5], [0.8,-4.3,-56.7], [0.8,-14.3,-58.0], [19.6,17.2,-45.3], [21.4,6.2,-49.5], [22.7,-4.3,-52.4], [23.1,-14.3,-53.6], [34.8,17.2,-35.1], [38.0,6.2,-38.3], [40.3,-4.3,-40.6], [41.2,-14.3,-41.5], [45.0,17.2,-19.9], [49.2,6.2,-21.7], [52.1,-4.3,-22.9], [53.3,-14.3,-23.4], [55.5,-22.7,-1.1], [50.6,-28.9,-1.1], [45.7,-33.2,-1.1], [43.5,-35.6,-1.1], [51.2,-22.7,20.3], [46.7,-28.9,18.4], [42.2,-33.2,16.5], [40.2,-35.6,15.6], [39.6,-22.7,37.7], [36.1,-28.9,34.2], [32.7,-33.2,30.7], [31.1,-35.6,29.2], [22.3,-22.7,49.3], [20.4,-28.9,44.8], [18.4,-33.2,40.3], [17.6,-35.6,38.2], [0.8,-22.7,53.5], [0.8,-28.9,48.6], [0.8,-33.2,43.8], [0.8,-35.6,41.5], [-20.6,-22.7,49.3], [-18.7,-28.9,44.8], [-16.8,-33.2,40.3], [-15.9,-35.6,38.2], [-38.0,-22.7,37.7], [-34.5,-28.9,34.2], [-31.0,-33.2,30.7], [-29.4,-35.6,29.2], [-49.6,-22.7,20.3], [-45.1,-28.9,18.4], [-40.6,-33.2,16.5], [-38.5,-35.6,15.6], [-53.8,-22.7,-1.1], [-48.9,-28.9,-1.1], [-44.0,-33.2,-1.1], [-41.8,-35.6,-1.1], [-49.6,-22.7,-22.6], [-45.1,-28.9,-20.6], [-40.6,-33.2,-18.7], [-38.5,-35.6,-17.8], [-38.0,-22.7,-39.9], [-34.5,-28.9,-36.4], [-31.0,-33.2,-33.0], [-29.4,-35.6,-31.4], [-20.6,-22.7,-51.5], [-18.7,-28.9,-47.0], [-16.8,-33.2,-42.5], [-15.9,-35.6,-40.4], [0.8,-22.7,-55.7], [0.8,-28.9,-50.9], [0.8,-33.2,-46.0], [0.8,-35.6,-43.7], [22.3,-22.7,-51.5], [20.4,-28.9,-47.0], [18.4,-33.2,-42.5], [17.6,-35.6,-40.4], [39.6,-22.7,-39.9], [36.1,-28.9,-36.4], [32.7,-33.2,-33.0], [31.1,-35.6,-31.4], [51.2,-22.7,-22.6], [46.7,-28.9,-20.6], [42.2,-33.2,-18.7], [40.2,-35.6,-17.8], [42.5,-37.2,-1.1], [37.3,-38.5,-1.1], [24.6,-39.5,-1.1], [0.8,-39.9,-1.1], [39.3,-37.2,15.2], [34.5,-38.5,13.2], [22.7,-39.5,8.2], [30.4,-37.2,28.5], [26.8,-38.5,24.8], [17.7,-39.5,15.8], [17.2,-37.2,37.3], [15.2,-38.5,32.6], [10.2,-39.5,20.8], [0.8,-37.2,40.6], [0.8,-38.5,35.4], [0.8,-39.5,22.6], [-15.5,-37.2,37.3], [-13.5,-38.5,32.6], [-8.5,-39.5,20.8], [-28.8,-37.2,28.5], [-25.1,-38.5,24.8], [-16.0,-39.5,15.8], [-37.6,-37.2,15.2], [-32.8,-38.5,13.2], [-21.1,-39.5,8.2], [-40.8,-37.2,-1.1], [-35.7,-38.5,-1.1], [-22.9,-39.5,-1.1], [-37.6,-37.2,-17.5], [-32.8,-38.5,-15.4], [-21.1,-39.5,-10.4], [-28.8,-37.2,-30.7], [-25.1,-38.5,-27.0], [-16.0,-39.5,-18.0], [-15.5,-37.2,-39.6], [-13.5,-38.5,-34.8], [-8.5,-39.5,-23.0], [0.8,-37.2,-42.8], [0.8,-38.5,-37.6], [0.8,-39.5,-24.9], [17.2,-37.2,-39.6], [15.2,-38.5,-34.8], [10.2,-39.5,-23.0], [30.4,-37.2,-30.7], [26.8,-38.5,-27.0], [17.7,-39.5,-18.0], [39.3,-37.2,-17.5], [34.5,-38.5,-15.4], [22.7,-39.5,-10.4], [-44.6,17.7,-1.1], [-57.9,17.6,-1.1], [-67.7,16.9,-1.1], [-73.8,15.0,-1.1], [-75.9,11.3,-1.1], [-44.2,18.7,3.7], [-58.3,18.6,3.7], [-68.7,17.8,3.7], [-75.1,15.6,3.7], [-77.3,11.3,3.7], [-43.2,20.9,5.3], [-59.2,20.7,5.3], [-70.8,19.7,5.3], [-77.8,16.8,5.3], [-80.2,11.3,5.3], [-42.3,23.1,3.7], [-60.1,22.9,3.7], [-72.8,21.6,3.7], [-80.5,18.1,3.7], [-83.1,11.3,3.7], [-41.8,24.1,-1.1], [-60.5,23.9,-1.1], [-73.8,22.5,-1.1], [-81.8,18.7,-1.1], [-84.4,11.3,-1.1], [-42.3,23.1,-5.9], [-60.1,22.9,-5.9], [-72.8,21.6,-5.9], [-80.5,18.1,-5.9], [-83.1,11.3,-5.9], [-43.2,20.9,-7.5], [-59.2,20.7,-7.5], [-70.8,19.7,-7.5], [-77.8,16.8,-7.5], [-80.2,11.3,-7.5], [-44.2,18.7,-5.9], [-58.3,18.6,-5.9], [-68.7,17.8,-5.9], [-75.1,15.6,-5.9], [-77.3,11.3,-5.9], [-74.8,5.5,-1.1], [-71.3,-1.5,-1.1], [-65.1,-8.5,-1.1], [-56.0,-14.3,-1.1], [-76.0,4.9,3.7], [-72.2,-2.4,3.7], [-65.4,-9.6,3.7], [-55.6,-15.6,3.7], [-78.7,3.7,5.3], [-74.1,-4.2,5.3], [-66.1,-11.9,5.3], [-54.6,-18.6,5.3], [-81.3,2.5,3.7], [-75.9,-6.1,3.7], [-66.8,-14.2,3.7], [-53.6,-21.5,3.7], [-82.6,1.9,-1.1], [-76.8,-7.0,-1.1], [-67.1,-15.2,-1.1], [-53.2,-22.8,-1.1], [-81.3,2.5,-5.9], [-75.9,-6.1,-5.9], [-66.8,-14.2,-5.9], [-53.6,-21.5,-5.9], [-78.7,3.7,-7.5], [-74.1,-4.2,-7.5], [-66.1,-11.9,-7.5], [-54.6,-18.6,-7.5], [-76.0,4.9,-5.9], [-72.2,-2.4,-5.9], [-65.4,-9.6,-5.9], [-55.6,-15.6,-5.9], [49.2,0.6,-1.1], [62.8,3.8,-1.1], [68.7,11.3,-1.1], [71.9,20.4,-1.1], [77.6,28.3,-1.1], [49.2,-3.0,9.4], [63.8,1.0,8.4], [70.0,9.7,6.2], [73.6,19.8,3.9], [80.2,28.3,2.9], [49.2,-11.1,13.0], [66.1,-4.9,11.6], [73.0,6.2,8.6], [77.1,18.6,5.6], [86.1,28.3,4.2], [49.2,-19.2,9.4], [68.4,-10.9,8.4], [75.9,2.7,6.2], [80.7,17.3,3.9], [92.0,28.3,2.9], [49.2,-22.8,-1.1], [69.5,-13.6,-1.1], [77.2,1.2,-1.1], [82.3,16.8,-1.1], [94.6,28.3,-1.1], [49.2,-19.2,-11.7], [68.4,-10.9,-10.6], [75.9,2.7,-8.4], [80.7,17.3,-6.1], [92.0,28.3,-5.1], [49.2,-11.1,-15.2], [66.1,-4.9,-13.8], [73.0,6.2,-10.8], [77.1,18.6,-7.8], [86.1,28.3,-6.4], [49.2,-3.0,-11.7], [63.8,1.0,-10.6], [70.0,9.7,-8.4], [73.6,19.8,-6.1], [80.2,28.3,-5.1], [79.6,29.5,-1.1], [81.1,29.9,-1.1], [81.6,29.5,-1.1], [80.4,28.3,-1.1], [82.5,29.6,2.6], [83.8,30.0,2.1], [83.9,29.6,1.5], [82.2,28.3,1.3], [88.8,29.7,3.9], [89.7,30.2,3.2], [88.9,29.8,2.4], [86.1,28.3,2.1], [95.0,29.9,2.6], [95.6,30.5,2.1], [93.9,30.0,1.5], [90.0,28.3,1.3], [97.9,29.9,-1.1], [98.3,30.5,-1.1], [96.1,30.1,-1.1], [91.8,28.3,-1.1], [95.0,29.9,-4.9], [95.6,30.5,-4.3], [93.9,30.0,-3.8], [90.0,28.3,-3.5], [88.8,29.7,-6.1], [89.7,30.2,-5.4], [88.9,29.8,-4.6], [86.1,28.3,-4.3], [82.5,29.6,-4.9], [83.8,30.0,-4.3], [83.9,29.6,-3.8], [82.2,28.3,-3.5], [0.8,49.7,-1.1], [10.5,48.3,-1.1], [10.1,44.9,-1.1], [6.4,40.7,-1.1], [6.5,36.9,-1.1], [9.8,48.3,2.7], [9.4,44.9,2.5], [6.0,40.7,1.1], [6.1,36.9,1.1], [7.7,48.3,5.8], [7.4,44.9,5.5], [4.8,40.7,2.9], [4.9,36.9,2.9], [4.6,48.3,7.8], [4.5,44.9,7.4], [3.0,40.7,4.1], [3.1,36.9,4.1], [0.8,48.3,8.6], [0.8,44.9,8.1], [0.8,40.7,4.5], [0.8,36.9,4.6], [-3.0,48.3,7.8], [-2.8,44.9,7.4], [-1.4,40.7,4.1], [-1.4,36.9,4.1], [-6.1,48.3,5.8], [-5.7,44.9,5.5], [-3.1,40.7,2.9], [-3.2,36.9,2.9], [-8.1,48.3,2.7], [-7.7,44.9,2.5], [-4.3,40.7,1.1], [-4.4,36.9,1.1], [-8.9,48.3,-1.1], [-8.4,44.9,-1.1], [-4.8,40.7,-1.1], [-4.9,36.9,-1.1], [-8.1,48.3,-4.9], [-7.7,44.9,-4.7], [-4.3,40.7,-3.3], [-4.4,36.9,-3.3], [-6.1,48.3,-8.0], [-5.7,44.9,-7.7], [-3.1,40.7,-5.1], [-3.2,36.9,-5.1], [-3.0,48.3,-10.0], [-2.8,44.9,-9.6], [-1.4,40.7,-6.3], [-1.4,36.9,-6.4], [0.8,48.3,-10.8], [0.8,44.9,-10.3], [0.8,40.7,-6.7], [0.8,36.9,-6.8], [4.6,48.3,-10.0], [4.5,44.9,-9.6], [3.0,40.7,-6.3], [3.1,36.9,-6.4], [7.7,48.3,-8.0], [7.4,44.9,-7.7], [4.8,40.7,-5.1], [4.9,36.9,-5.1], [9.8,48.3,-4.9], [9.4,44.9,-4.7], [6.0,40.7,-3.3], [6.1,36.9,-3.3], [13.8,34.3,-1.1], [24.3,32.6,-1.1], [33.7,30.9,-1.1], [37.8,28.3,-1.1], [12.8,34.3,4.0], [22.5,32.6,8.1], [31.2,30.9,11.8], [34.9,28.3,13.4], [10.0,34.3,8.1], [17.5,32.6,15.5], [24.2,30.9,22.2], [27.1,28.3,25.1], [5.9,34.3,10.9], [10.0,32.6,20.5], [13.7,30.9,29.2], [15.3,28.3,33.0], [0.8,34.3,11.9], [0.8,32.6,22.3], [0.8,30.9,31.8], [0.8,28.3,35.8], [-4.3,34.3,10.9], [-8.4,32.6,20.5], [-12.1,30.9,29.2], [-13.7,28.3,33.0], [-8.4,34.3,8.1], [-15.8,32.6,15.5], [-22.5,30.9,22.2], [-25.4,28.3,25.1], [-11.1,34.3,4.0], [-20.8,32.6,8.1], [-29.5,30.9,11.8], [-33.3,28.3,13.4], [-12.1,34.3,-1.1], [-22.6,32.6,-1.1], [-32.0,30.9,-1.1], [-36.1,28.3,-1.1], [-11.1,34.3,-6.2], [-20.8,32.6,-10.3], [-29.5,30.9,-14.0], [-33.3,28.3,-15.6], [-8.4,34.3,-10.3], [-15.8,32.6,-17.8], [-22.5,30.9,-24.4], [-25.4,28.3,-27.3], [-4.3,34.3,-13.1], [-8.4,32.6,-22.7], [-12.1,30.9,-31.4], [-13.7,28.3,-35.2], [0.8,34.3,-14.1], [0.8,32.6,-24.6], [0.8,30.9,-34.0], [0.8,28.3,-38.1], [5.9,34.3,-13.1], [10.0,32.6,-22.7], [13.7,30.9,-31.4], [15.3,28.3,-35.2], [10.0,34.3,-10.3], [17.5,32.6,-17.8], [24.2,30.9,-24.4], [27.1,28.3,-27.3], [12.8,34.3,-6.2], [22.5,32.6,-10.3], [31.2,30.9,-14.0], [34.9,28.3,-15.6]]; // List of edge pairs to be connected by lines. var edges = [[505,509], [439,438], [479,474], [215,218], [382,377], [468,469], [512,507], [497,501], [145,204], [374,369], [381,385], [442,401], [99,103], [411,406], [489,493], [36,41], [148,152], [500,504], [473,468], [203,207], [526,466], [288,287], [324,328], [494,429], [85,80], [135,139], [507,511], [417,416], [455,450], [291,296], [129,133], [506,441], [336,335], [473,477], [485,480], [524,519], [318,322], [526,461], [141,81], [85,89], [308,312], [211,244], [166,170], [387,382], [502,437], [413,408], [491,495], [337,331], [264,269], [66,60], [289,283], [45,40], [300,304], [175,174], [391,390], [461,460], [78,3], [388,383], [46,40], [125,124], [73,78], [488,483], [475,479], [113,112], [423,418], [501,505], [246,249], [343,348], [156,91], [395,399], [418,401], [46,51], [105,104], [142,141], [493,497], [35,30], [243,246], [34,39], [109,108], [37,42], [404,405], [428,423], [18,23], [230,233], [322,326], [362,356], [71,65], [365,364], [484,483], [498,433], [340,339], [51,45], [217,213], [58,57], [331,365], [405,409], [244,247], [227,230], [325,291], [312,307], [276,281], [352,346], [322,321], [362,367], [418,422], [1,6], [207,147], [341,340], [345,350], [346,340], [519,518], [518,522], [355,360], [268,273], [197,192], [399,371], [42,41], [409,413], [228,231], [265,270], [420,419], [205,145], [64,69], [527,526], [372,376], [346,351], [79,4], [317,281], [197,201], [23,22], [406,410], [69,68], [519,523], [367,366], [31,30], [338,343], [11,10], [357,351], [363,357], [484,488], [115,110], [177,172], [215,155], [263,257], [47,52], [86,81], [481,476], [155,159], [263,262], [134,129], [165,160], [115,119], [185,184], [485,484], [347,346], [245,195], [446,401], [122,126], [416,415], [199,203], [368,333], [319,318], [208,209], [31,36], [165,169], [114,118], [260,294], [2,3], [335,334], [122,121], [88,9], [56,50], [242,245], [206,146], [136,74], [483,478], [106,110], [269,274], [452,451], [147,151], [259,260], [376,371], [515,514], [212,147], [298,325], [114,113], [525,520], [112,39], [257,258], [386,381], [307,302], [208,207], [484,479], [393,358], [106,105], [453,452], [261,295], [190,194], [413,417], [90,94], [436,435], [503,507], [69,74], [200,204], [221,159], [416,420], [307,311], [459,454], [82,86], [211,211], [504,508], [432,427], [172,107], [90,89], [12,6], [496,500], [225,221], [183,182], [344,339], [514,518], [408,407], [6,0], [417,412], [488,492], [326,321], [62,67], [522,526], [48,47], [421,420], [27,21], [205,200], [318,313], [53,52], [166,165], [36,35], [283,282], [450,454], [361,366], [472,476], [310,305], [510,514], [307,306], [317,321], [176,180], [513,512], [258,263], [84,88], [163,158], [255,209], [388,387], [107,106], [291,290], [238,234], [330,331], [9,8], [353,352], [13,12], [441,440], [312,316], [220,216], [464,459], [393,397], [73,67], [238,237], [61,55], [264,263], [156,160], [103,107], [433,432], [24,29], [256,255], [136,140], [49,43], [434,401], [349,344], [301,266], [375,370], [254,207], [440,444], [425,424], [130,134], [288,293], [200,135], [492,496], [76,70], [432,436], [367,332], [187,186], [265,259], [529,524], [211,253], [480,484], [143,138], [158,157], [460,459], [316,320], [191,190], [340,334], [58,52], [424,428], [316,311], [191,186], [62,56], [523,518], [378,373], [12,11], [271,276], [311,310], [96,24], [206,205], [515,519], [294,293], [80,81], [171,170], [345,339], [54,48], [58,63], [61,66], [447,451], [470,474], [42,36], [47,41], [286,285], [510,445], [276,275], [207,206], [229,232], [394,398], [244,240], [355,354], [501,496], [222,225], [196,200], [471,470], [130,129], [42,47], [247,250], [67,61], [379,383], [161,160], [303,302], [370,397], [280,274], [255,251], [443,438], [80,79], [394,393], [289,294], [456,455], [116,49], [228,224], [247,243], [180,184], [209,213], [284,289], [231,234], [121,120], [381,348], [172,176], [249,245], [47,46], [63,62], [384,379], [293,287], [23,17], [135,134], [367,361], [377,343], [231,227], [323,322], [297,296], [396,395], [385,353], [167,162], [356,361], [198,193], [223,219], [101,96], [186,181], [502,506], [387,386], [159,154], [496,495], [277,272], [443,447], [190,185], [450,401], [180,119], [529,469], [101,105], [364,359], [189,193], [290,289], [140,80], [149,153], [170,165], [486,490], [407,402], [153,148], [335,329], [427,431], [87,82], [132,136], [122,117], [92,14], [437,432], [140,79], [242,187], [12,17], [196,131], [366,360], [153,157], [528,468], [10,5], [192,127], [211,256], [437,441], [40,35], [21,15], [332,366], [279,284], [323,318], [145,149], [151,155], [373,338], [306,301], [150,154], [227,171], [429,433], [111,110], [211,210], [273,267], [333,369], [284,283], [326,298], [361,355], [15,10], [329,330], [405,464], [359,354], [368,362], [350,355], [467,526], [414,401], [254,208], [439,443], [377,381], [357,356], [288,282], [438,442], [78,77], [248,195], [398,393], [354,349], [369,373], [233,179], [21,26], [2,76], [319,323], [79,78], [299,300], [13,18], [324,323], [3,4], [389,393], [483,482], [174,178], [448,447], [33,32], [327,322], [274,279], [260,265], [336,330], [179,174], [218,159], [24,23], [389,353], [421,416], [209,254], [181,180], [211,238], [308,307], [155,154], [313,281], [160,164], [179,183], [203,198], [117,112], [210,255], [391,395], [507,502], [397,363], [7,6], [390,394], [451,450], [226,225], [161,156], [91,95], [271,270], [276,270], [522,461], [132,64], [117,121], [233,175], [305,266], [70,65], [147,206], [465,460], [270,264], [491,486], [109,113], [204,139], [400,399], [383,387], [420,415], [100,29], [194,198], [270,275], [492,487], [330,364], [154,158], [449,444], [237,233], [475,470], [521,525], [520,515], [116,44], [261,266], [250,253], [253,256], [25,20], [395,390], [363,368], [163,162], [146,150], [124,128], [194,193], [493,488], [131,135], [97,96], [154,153], [430,401], [476,471], [251,254], [259,293], [189,188], [234,237], [499,498], [110,109], [28,22], [177,176], [217,220], [401,402], [510,449], [317,286], [248,251], [451,446], [0,75], [202,201], [232,228], [252,255], [290,284], [184,188], [38,43], [169,168], [482,417], [447,446], [498,502], [235,238], [240,243], [173,172], [321,291], [218,221], [257,292], [356,355], [304,308], [302,301], [256,252], [59,58], [409,404], [232,235], [514,449], [188,192], [192,131], [467,468], [216,212], [235,231], [236,239], [168,172], [466,465], [219,222], [245,248], [304,299], [457,456], [495,490], [32,31], [253,249], [126,121], [38,37], [43,42], [338,332], [11,5], [216,219], [237,240], [464,404], [191,195], [219,215], [220,223], [76,1], [118,113], [125,129], [495,499], [136,69], [155,150], [106,101], [99,94], [89,84], [146,147], [436,431], [380,375], [108,39], [174,169], [137,132], [123,127], [199,194], [459,458], [497,492], [102,97], [509,504], [365,359], [479,483], [266,265], [89,93], [90,85], [420,424], [39,44], [51,50], [463,458], [328,327], [419,423], [94,89], [137,141], [474,413], [131,126], [81,85], [28,33], [157,152], [107,111], [505,504], [75,70], [477,476], [298,299], [376,380], [503,502], [33,27], [511,510], [37,31], [278,283], [339,334], [517,512], [283,288], [124,54], [287,282], [488,487], [399,398], [1,75], [48,42], [496,491], [487,486], [444,443], [139,143], [517,521], [293,292], [77,2], [149,144], [374,378], [431,426], [315,319], [479,478], [481,485], [44,38], [449,453], [472,471], [511,515], [278,277], [282,277], [504,503], [382,386], [470,409], [447,442], [428,427], [431,435], [92,19], [477,481], [79,73], [299,303], [128,64], [476,480], [66,65], [251,199], [8,13], [211,232], [85,84], [511,506], [455,454], [29,34], [362,361], [415,419], [61,60], [9,14], [264,258], [320,324], [275,280], [353,358], [500,499], [49,48], [0,1], [116,120], [211,241], [397,369], [440,439], [413,412], [72,77], [41,40], [285,279], [108,112], [501,500], [342,347], [121,116], [182,177], [347,352], [7,1], [97,92], [407,411], [372,399], [103,98], [469,473], [152,91], [83,142], [337,342], [271,265], [311,315], [121,125], [156,95], [71,76], [294,288], [95,90], [461,465], [466,467], [105,100], [415,414], [98,93], [113,117], [77,71], [133,128], [286,280], [342,341], [129,124], [390,389], [105,109], [394,389], [341,335], [438,401], [471,475], [133,137], [82,141], [343,342], [518,457], [320,319], [489,484], [1,2], [130,125], [4,9], [197,196], [275,274], [157,161], [119,123], [209,210], [110,114], [401,401], [366,331], [313,317], [98,102], [520,519], [263,268], [86,90], [480,479], [120,54], [379,374], [252,248], [144,145], [325,297], [435,434], [332,333], [134,138], [305,309], [378,377], [422,401], [200,139], [195,194], [341,346], [328,300], [94,98], [98,97], [268,267], [297,301], [142,82], [333,338], [138,137], [63,57], [467,471], [14,8], [490,425], [165,164], [148,83], [334,329], [249,252], [416,411], [144,143], [266,260], [14,19], [204,143], [241,244], [193,188], [112,44], [2,7], [430,434], [458,462], [208,212], [233,236], [3,77], [266,271], [291,285], [241,237], [129,128], [26,25], [525,524], [68,73], [331,332], [184,123], [285,290], [452,447], [59,64], [188,127], [414,418], [18,17], [427,422], [8,7], [176,115], [145,146], [309,313], [281,280], [195,190], [93,88], [262,257], [119,114], [178,173], [52,57], [168,107], [509,508], [301,305], [393,363], [32,37], [141,136], [273,272], [17,16], [172,111], [44,49], [445,440], [448,452], [240,239], [319,314], [16,21], [53,47], [60,55], [333,367], [78,72], [151,146], [360,365], [392,391], [201,200], [310,314], [224,167], [429,424], [369,370], [205,204], [412,407], [236,179], [230,175], [214,213], [309,276], [189,184], [260,261], [9,3], [174,173], [275,269], [497,496], [299,326], [66,71], [211,226], [138,142], [150,149], [308,303], [365,330], [439,434], [99,98], [358,363], [489,488], [382,381], [330,335], [336,341], [355,349], [203,202], [24,18], [389,358], [293,258], [300,327], [513,517], [441,436], [528,527], [211,235], [374,373], [193,192], [507,506], [53,58], [33,38], [72,71], [383,382], [403,404], [468,472], [473,472], [221,224], [245,191], [311,306], [441,445], [494,433], [120,124], [375,374], [397,368], [254,203], [425,420], [460,464], [465,464], [502,441], [358,357], [491,490], [274,268], [22,27], [433,437], [384,388], [67,66], [353,347], [112,116], [350,349], [143,142], [425,429], [478,417], [104,108], [316,315], [475,474], [526,465], [175,170], [187,191], [206,201], [391,386], [395,394], [147,208], [166,161], [193,197], [16,15], [327,299], [292,287], [22,21], [154,149], [88,92], [493,492], [28,27], [303,307], [158,153], [91,86], [348,353], [80,84], [171,175], [267,262], [454,458], [109,104], [343,337], [512,516], [159,163], [113,108], [19,24], [93,97], [274,273], [244,243], [463,403], [486,421], [181,185], [128,59], [404,408], [23,28], [409,408], [161,165], [312,311], [11,16], [50,45], [478,413], [173,177], [29,23], [396,400], [518,453], [198,202], [385,389], [228,227], [325,296], [212,151], [527,522], [296,295], [167,166], [380,379], [20,15], [57,56], [101,100], [32,26], [182,186], [37,36], [4,80], [323,327], [159,158], [36,30], [240,236], [149,148], [26,20], [215,151], [5,0], [86,85], [272,267], [59,53], [406,401], [348,342], [303,298], [134,133], [212,215], [26,31], [68,67], [345,344], [87,86], [408,403], [314,318], [64,63], [290,295], [437,436], [43,37], [348,347], [242,191], [373,333], [485,489], [196,135], [306,310], [52,51], [380,384], [258,292], [314,313], [81,82], [392,387], [259,264], [298,302], [376,375], [140,74], [239,187], [114,109], [524,523], [411,410], [306,305], [402,403], [227,167], [123,118], [476,475], [162,157], [56,61], [321,325], [269,263], [453,448], [127,122], [265,264], [188,123], [48,53], [371,398], [360,359], [487,491], [146,205], [107,102], [453,457], [169,164], [279,278], [284,278], [351,350], [482,421], [69,63], [417,421], [278,272], [499,494], [251,203], [127,131], [211,220], [398,370], [363,362], [294,259], [65,60], [411,415], [326,325], [431,430], [302,306], [202,206], [385,348], [499,503], [500,495], [139,134], [162,166], [516,520], [318,317], [211,229], [506,510], [17,22], [175,179], [455,459], [315,310], [448,443], [357,362], [327,326], [324,319], [310,309], [421,425], [213,212], [158,162], [162,161], [258,259], [483,487], [57,62], [462,402], [490,494], [164,99], [403,407], [285,284], [34,28], [225,228], [49,54], [512,511], [117,116], [68,62], [464,463], [192,196], [468,527], [505,500], [238,241], [41,46], [408,412], [446,450], [523,522], [474,478], [76,75], [204,144], [423,427], [226,229], [508,507], [522,457], [466,470], [73,72], [295,260], [243,239], [527,467], [482,486], [194,189], [451,455], [329,364], [77,76], [83,144], [250,246], [342,336], [305,271], [400,395], [220,219], [460,455], [46,45], [492,491], [19,13], [224,227], [371,372], [81,140], [246,242], [84,9], [432,431], [183,178], [181,176], [283,277], [234,230], [442,446], [461,456], [100,24], [19,18], [100,104], [381,343], [185,180], [246,245], [379,378], [434,438], [164,168], [96,19], [207,202], [163,167], [110,105], [217,216], [419,414], [97,101], [426,430], [471,466], [185,189], [222,218], [424,423], [120,49], [247,246], [352,351], [337,336], [235,234], [177,181], [128,132], [27,32], [528,523], [222,221], [297,298], [232,231], [412,416], [514,453], [169,173], [280,285], [377,338], [231,230], [83,87], [423,422], [219,218], [457,452], [295,289], [407,406], [118,122], [384,383], [223,222], [495,494], [135,130], [67,72], [322,317], [465,405], [216,215], [443,442], [396,391], [126,130], [183,187], [30,25], [52,46], [198,197], [457,461], [102,106], [370,371], [469,528], [347,341], [229,228], [190,189], [525,529], [180,115], [400,372], [427,426], [199,198], [410,401], [119,118], [182,181], [386,390], [124,59], [456,451], [509,513], [463,462], [529,528], [108,34], [328,323], [153,152], [520,524], [88,14], [56,55], [459,463], [157,156], [452,456], [4,78], [386,385], [104,29], [213,208], [142,137], [281,286], [517,516], [6,11], [243,242], [273,278], [214,217], [436,440], [39,38], [422,426], [27,26], [256,210], [111,106], [82,83], [211,214], [428,432], [160,99], [21,20], [279,273], [63,68], [351,345], [321,286], [472,467], [458,401], [150,145], [226,222], [92,96], [111,115], [369,368], [6,5], [211,223], [138,133], [57,51], [331,336], [248,199], [361,360], [398,397], [524,528], [519,514], [95,99], [72,66], [41,35], [445,449], [94,93], [508,512], [143,83], [261,297], [415,410], [286,291], [3,8], [375,379], [440,435], [17,11], [388,392], [7,12], [358,352], [313,276], [356,350], [179,178], [218,155], [13,7], [93,92], [350,344], [424,419], [103,102], [152,87], [523,527], [84,4], [91,90], [132,69], [301,261], [211,247], [95,94], [176,111], [16,10], [54,59], [22,16], [433,428], [133,132], [229,225], [390,385], [503,498], [239,242], [125,120], [371,375], [211,250], [486,425], [521,520], [62,61], [378,382], [270,269], [187,182], [320,315], [71,70], [54,53], [131,130], [370,374], [34,33], [223,226], [250,249], [74,73], [295,294], [171,166], [29,28], [340,345], [289,288], [8,2], [480,475], [506,445], [435,430], [332,337], [280,279], [234,233], [296,290], [152,156], [429,428], [51,56], [221,163], [167,171], [498,437], [456,460], [494,498], [252,251], [144,148], [435,439], [269,268], [43,48], [210,214], [104,34], [490,429], [164,103], [173,168], [195,199], [454,401], [346,345], [148,87], [426,401], [249,248], [268,262], [253,252], [74,68], [478,482], [338,337], [38,32], [255,254], [241,240], [373,377], [403,462], [304,303], [87,91], [508,503], [55,50], [314,309], [64,58], [126,125], [74,79], [186,190], [352,357], [225,224], [237,236], [239,183], [351,356], [281,275], [184,119], [404,463], [118,117], [123,122], [178,182], [115,114], [410,414], [160,95], [127,126], [186,185], [89,88], [515,510], [170,174], [470,405], [419,418], [402,406], [335,340], [137,136], [504,499], [178,177], [168,103], [387,391], [481,480], [449,448], [102,101], [141,140], [18,12], [516,511], [296,261], [170,169], [445,444], [360,354], [366,365], [474,409], [392,396], [513,508], [477,472], [213,216], [309,271], [521,516], [39,33], [151,150], [462,401], [201,196], [224,163], [405,466], [139,138], [211,217], [412,411], [31,25], [236,183], [315,314], [516,515], [230,171], [214,209], [399,394], [383,378], [44,43], [444,448], [302,297], [487,482], [201,205], [202,197], [14,13], [444,439], [368,367], [96,100]]; var currentX = false; var currentY = false; var rotateY3D = function(theta){ var ct = cos(theta); var st = sin(theta); var x; var y; var z; for (var i = 0; i < nodes.length; i+=1) { x = nodes[i][0]; y = nodes[i][1]; z = nodes[i][2]; nodes[i] = [ct*x + st*z, y, -st*x + ct*z]; } }; var rotateX3D = function(theta){ var ct = cos(theta); var st = sin(theta); var x; var y; var z; for (var i = 0; i < nodes.length; i+=1) { x = nodes[i][0]; y = nodes[i][1]; z = nodes[i][2]; nodes[i] = [x, ct*y - st*z, st*y + ct*z]; } }; var draw = function() { var i; var node1; var node2; background(250, 247, 240); for (i = 0; i < edges.length; i+=1) { node1 = nodes[edges[i][0]]; node2 = nodes[edges[i][1]]; stroke(32, 53, 66); line(node1[0], node1[1], node2[0], node2[1]); } for(i = 0; i < nodes.length;i++) { fill(144, 0, 240); var ts = round((nodes[i][2] + 60)/12); textSize(ts); text(i, nodes[i][0], nodes[i][1]); } if (mouseIsPressed) { if (currentX !== false) { rotateY3D(-(currentX - mouseX)*PI/10); rotateX3D((currentY - mouseY)*PI/10); } currentX = mouseX; currentY = mouseY; } else { currentX = false; } }; var mouseOut = function(){ mouseIsPressed = false; }; var keyPressed = function() { if (keyCode === LEFT) { rotateY3D(-rotateAngle); } else if (keyCode === RIGHT) { rotateY3D(rotateAngle); } else if (keyCode === UP) { rotateX3D(-rotateAngle); } else if (keyCode === DOWN) { rotateX3D(rotateAngle); } }; // Initial rotations rotateX3D(60*rotateAngle); //rotateY3D(6*rotateAngle);