Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Side by Side Diff: tools/pathops_sorter.htm

Issue 1037573004: cumulative pathops patch (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix pathopsinverse gm Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests/PathOpsTightBoundsTest.cpp ('k') | tools/pathops_visualizer.htm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 2
3 <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 3 <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
4 <head> 4 <head>
5 <meta charset="utf-8" /> 5 <meta charset="utf-8" />
6 <title></title> 6 <title></title>
7 <div style="height:0"> 7 <div style="height:0">
8 8 <div id="sect1">
9 <div id="quad1"> 9 {{{1.80943513, 3.0778243500000002}, {1.66686702, 2.1680693600000001}, {1.6830127 2, 0}, {3, 0}}} id=1
10 {{3.13,2.74}, {1.08,4.62}, {3.71,0.94}} 10 {{{0, 1}, {0, 2}, {0.75, 2.25}, {1.75, 2.25}}} id=2
11 {{3.13,2.74}, {7.99,2.75}, {8.27,1.96}} 11 {{{1.75, 2.25}, {2.75, 2.25}, {4, 2}, {5, 2}}} id=4
12 </div> 12 </div>
13 13
14 <div id="quad2"> 14 <div id="sect2">
15 {{4.838888984361574,4.399276078363981}, {5.947577332875065,2.02910379790342}, {3 .8092258119951885,2.108659563498883}} 15 {{{1.80943513, 3.0778243500000002}, {1.66686702, 2.1680693600000001}, {1.6830127 2, 0}, {3, 0}}} id=1
16 {{4.838888984361574,4.399276078363981}, {6.192910293864926,1.7797920604914939}, {3.3638348513490293,1.4969462106891218}} 16 {{{0, 1}, {0, 2}, {0.75, 2.25}, {1.75, 2.25}}} id=2
17 </div> 17 {{{1.75, 2.25}, {2.2500000000000018, 2.25}, {2.8124999999999991, 2.1875}, {3.375 , 2.125}}} id=4
18 18 </div>
19 <div id="quad3"> 19
20 {{4.838888984361574,4.399276078363981}, {5.962263714769107,1.654601059605365}, { 3.8789861259918847,2.8650082310420126}} 20 <div id="sect3">
21 {{4.838888984361574,4.399276078363981}, {6.192910293864926,1.7797920604914939}, {3.3638348513490293,1.4969462106891218}} 21 {{{1.80943513, 3.0778243500000002}, {1.738151075, 2.6229468550000004}, {1.706545 4725, 1.8534907675000001}, {1.85738429375, 1.19775405375}}} id=1
22 </div> 22 {{{0, 1}, {0, 2}, {0.75, 2.25}, {1.75, 2.25}}} id=2
23 23 {{{1.75, 2.25}, {2.2500000000000018, 2.25}, {2.8124999999999991, 2.1875}, {3.375 , 2.125}}} id=4
24 <div id="quad4"> 24 </div>
25 {{4.838888984361574,4.399276078363981}, {5.77868394109359,1.852867215174923}, {3 .915702080726988,2.1820914729690903}} 25
26 {{4.838888984361574,4.399276078363981}, {6.681232491841801,2.5287975370876032}, {3.3638348513490293,1.4969462106891218}} 26 <div id="sect4">
27 </div> 27 {{{1.80943513, 3.0778243500000002}, {1.7737931025, 2.8503856025000003}, {1.74807 06881249999, 2.5443022068750003}, {1.7501136332812499, 2.2131114089062502}}} id= 1
28 28 {{{0, 1}, {0, 2}, {0.75, 2.25}, {1.75, 2.25}}} id=2
29 <div id="quad5"> 29 {{{1.75, 2.25}, {2.2500000000000018, 2.25}, {2.8124999999999991, 2.1875}, {3.375 , 2.125}}} id=4
30 {{4.838888984361574,4.399276078363981}, {6.082937568878361,1.9951156645288415}, {3.915702080726988,2.1820914729690903}} 30 </div>
31 {{4.838888984361574,4.399276078363981}, {6.681232491841801,2.5287975370876032}, {3.3638348513490293,1.4969462106891218}} 31
32 </div> 32 <div id="sect5">
33 33 {{{1.80943513, 3.0778243500000002}, {1.7737931025, 2.8503856025000003}, {1.74807 06881249999, 2.5443022068750003}, {1.7501136332812499, 2.2131114089062502}}} id= 1
34 <div id="quad6"> 34 {{{0.5, 2}, {0.81249999999999956, 2.1874999999999987}, {1.2500000000000009, 2.25 00000000000013}, {1.75, 2.25}}} id=8
35 {{4.898159171592373,4.367665311840888}, {6.695396170263287,1.769888953051804}, { 3.6312051820191513,2.727377195492444}} 35 {{{1.75, 2.25}, {2.2500000000000018, 2.25}, {2.8124999999999991, 2.1875}, {3.375 , 2.125}}} id=4
36 {{4.898159171592373,4.367665311840888}, {6.961778044734251,2.4813813873029633}, {3.3638348513490293,1.4969462106891218}} 36 </div>
37 </div> 37
38 38 <div id="sect6">
39 <div id="quad7"> 39 {{{1.80943513, 3.0778243500000002}, {1.7737931025, 2.8503856025000003}, {1.74807 06881249999, 2.5443022068750003}, {1.7501136332812499, 2.2131114089062502}}} id= 1
40 {{4.838888984361574,4.399276078363981}, {3.012741870322956,2.449520433298304}, { 5.140619283496844,2.110967248292131}} 40 {{{0.5, 2}, {0.81249999999999956, 2.1874999999999987}, {1.2500000000000009, 2.25 00000000000013}, {1.75, 2.25}}} id=8
41 {{4.838888984361574,4.399276078363981}, {2.804962246947524,2.232446600933607}, { 6.60393841996606,2.077794045550955}} 41 {{{1.75, 2.25}, {1.9999999999999976, 2.25}, {2.2656250000000022, 2.234375}, {2.5 390625, 2.2109375}}} id=4
42 </div> 42 </div>
43 43
44 <div id="quad8"> 44 <div id="sect7">
45 {{4.838888984361574,4.399276078363981}, {3.1707957029384213,2.607574265913769}, {4.626944327496585,2.2848264641691425}} 45 {{{1.80943513, 3.0778243500000002}, {1.7737931025, 2.8503856025000003}, {1.74807 06881249999, 2.5443022068750003}, {1.7501136332812499, 2.2131114089062502}}} id= 1
46 {{4.838888984361574,4.399276078363981}, {2.804962246947524,2.232446600933607}, { 6.60393841996606,2.077794045550955}} 46 {{{1.0546875, 2.1953125}, {1.2656250000000009, 2.2343750000000009}, {1.499999999 9999996, 2.2499999999999996}, {1.75, 2.25}}} id=12
47 </div> 47 {{{1.75, 2.25}, {1.9999999999999976, 2.25}, {2.2656250000000022, 2.234375}, {2.5 390625, 2.2109375}}} id=4
48 48 </div>
49 <div id="quad9"> 49
50 {{4.838888984361574,4.399276078363981}, {3.463749932092156,2.935940544745428}, { 5.161344349908893,2.4940794849932386}} 50 <div id="sect8">
51 {{4.838888984361574,4.399276078363981}, {2.804962246947524,2.232446600933607}, { 6.60393841996606,2.077794045550955}} 51 {{{1.7656425168945311, 2.6843748983789064}, {1.7550120280078125, 2.5380253562890 633}, {1.7490921607031253, 2.3787068078906248}, {1.7501136332812499, 2.213111408 9062502}}} id=7
52 </div> 52 {{{1.0546875, 2.1953125}, {1.2656250000000009, 2.2343750000000009}, {1.499999999 9999996, 2.2499999999999996}, {1.75, 2.25}}} id=12
53 53 {{{1.75, 2.25}, {1.9999999999999976, 2.25}, {2.2656250000000022, 2.234375}, {2.5 390625, 2.2109375}}} id=4
54 <div id="quad10"> 54 </div>
55 {{4.838888984361574,4.399276078363981}, {5.82508561259808,2.495362604119041}, {3 .4377993053488463,2.7132154732530362}} 55
56 {{4.838888984361574,4.399276078363981}, {6.192910293864926,1.7797920604914939}, {2.435268584733173,1.817005221735438}} 56 <div id="sect9">
57 </div> 57 {{{1.7656425168945311, 2.6843748983789064}, {1.7550120280078125, 2.5380253562890 633}, {1.7490921607031253, 2.3787068078906248}, {1.7501136332812499, 2.213111408 9062502}}} id=7
58 58 {{{1.0546875, 2.1953125}, {1.2656250000000009, 2.2343750000000009}, {1.499999999 9999996, 2.2499999999999996}, {1.75, 2.25}}} id=12
59 <div id="cubic1"> 59 {{{1.75, 2.25}, {1.8750000000000016, 2.2499999999999991}, {2.0039062499999982, 2 .2460937500000004}, {2.1357421875, 2.2392578125}}} id=4
60 {{0,0}, {1,0}, {0,1}, {1,1}} 60 </div>
61 {{0,0}, {2,0}, {0,2}, {2,2}} 61
62 </div> 62 <div id="sect10">
63 63 {{{1.7656425168945311, 2.6843748983789064}, {1.7550120280078125, 2.5380253562890 633}, {1.7490921607031253, 2.3787068078906248}, {1.7501136332812499, 2.213111408 9062502}}} id=7
64 <div id="cubic2" > 64 {{{1.3876953125, 2.2373046875}, {1.50390625, 2.24609375}, {1.625, 2.25}, {1.75, 2.25}}} id=16
65 {{0.4655213647959181,1.5608657525510201}, {0.6599868463010203,0.4290098852040817 }, {2.473652742346939,1.2464524872448977}, {1.8511738679846936,0.534478635204081 8}} 65 {{{1.75, 2.25}, {1.8750000000000016, 2.2499999999999991}, {2.0039062499999982, 2 .2460937500000004}, {2.1357421875, 2.2392578125}}} id=4
66 {{0.4655213647959181,1.5608657525510201}, {0.3250358737244896,0.819226323341837} , {1.4399214764030612,0.3318817761479596}, {1.2703414571528546,0.908146532214418 1}} 66 </div>
67 </div> 67
68 68 <div id="sect11">
69 <div id="quad11"> 69 {{{1.7535085895385742, 2.4559603499780276}, {1.7508274956738286, 2.3771375952441 409}, {1.7496028969921869, 2.2959091083984369}, {1.7501136332812499, 2.213111408 9062502}}} id=9
70 {{-378.22698974609375, -987.8935546875}, {-47.53326416015625, 482.7139892578125} , {-626.4708251953125, -338.62969970703125}} 70 {{{1.3876953125, 2.2373046875}, {1.50390625, 2.24609375}, {1.625, 2.25}, {1.75, 2.25}}} id=16
71 {{-378.22698974609375, -987.8935546875}, {-847.94854736328125, -861.422302246093 75}, {-390.9146728515625, 402.08740234375}} 71 {{{1.75, 2.25}, {1.8750000000000016, 2.2499999999999991}, {2.0039062499999982, 2 .2460937500000004}, {2.1357421875, 2.2392578125}}} id=4
72 </div> 72 </div>
73 73
74 <div id="quad12"> 74 <div id="sect12">
75 {{-173.3448486328125, -962.89422607421875}, {-778.321533203125, -161.47637939453 125}, {-196.77374267578125, -736.40155029296875}} 75 {{{1.7535085895385742, 2.4559603499780276}, {1.7508274956738286, 2.3771375952441 409}, {1.7496028969921869, 2.2959091083984369}, {1.7501136332812499, 2.213111408 9062502}}} id=9
76 {{-173.3448486328125, -962.89422607421875}, {652.3017578125, -400.67816162109375 }, {-386.7855224609375, 361.1614990234375}} 76 {{{1.3876953125, 2.2373046875}, {1.50390625, 2.24609375}, {1.625, 2.25}, {1.75, 2.25}}} id=16
77 </div> 77 {{{1.75, 2.25}, {1.8124999999999989, 2.2499999999999996}, {1.8759765625000011, 2 .2490234374999996}, {1.9403076171875, 2.2471923828125}}} id=4
78 78 </div>
79 <div id="quad13"> 79
80 {{{-968.181396484375, 544.0128173828125}, {592.2825927734375, 870.552490234375}, {593.435302734375, 557.8828125}}} 80 <div id="sect13">
81 {{{-968.181396484375, 544.0128173828125}, {593.677001953125, 865.5810546875}, {- 66.57171630859375, -847.849853515625}}} 81 {{{1.7535085895385742, 2.4559603499780276}, {1.7508274956738286, 2.3771375952441 409}, {1.7496028969921869, 2.2959091083984369}, {1.7501136332812499, 2.213111408 9062502}}} id=9
82 </div> 82 {{{1.5655517578125, 2.2469482421875}, {1.6259765625, 2.2490234375}, {1.6875, 2.2 5}, {1.75, 2.25}}} id=20
83 83 {{{1.75, 2.25}, {1.8124999999999989, 2.2499999999999996}, {1.8759765625000011, 2 .2490234374999996}, {1.9403076171875, 2.2471923828125}}} id=4
84 <div id="quad14"> 84 </div>
85 {{{769.693115234375, -626.35089111328125}, {6.60491943359375, -210.4375610351562 5}, {-898.26654052734375, -17.76312255859375}}} 85
86 {{{769.693115234375, -626.35089111328125}, {192.8486328125, 609.8062744140625}, {888.317626953125, -551.27215576171875}}} 86 <div id="sect14">
87 </div> 87 {{{1.7506141751022339, 2.3360264837265015}, {1.7500367307348632, 2.2955168052368 169}, {1.7498582651367187, 2.2545102586523438}, {1.7501136332812499, 2.213111408 9062502}}} id=11
88 88 {{{1.5655517578125, 2.2469482421875}, {1.6259765625, 2.2490234375}, {1.6875, 2.2 5}, {1.75, 2.25}}} id=20
89 <div id="quad15"> 89 {{{1.75, 2.25}, {1.8124999999999989, 2.2499999999999996}, {1.8759765625000011, 2 .2490234374999996}, {1.9403076171875, 2.2471923828125}}} id=4
90 {{{187.410400390625, -343.557373046875}, {-752.7930908203125, 431.57177734375}, {387.663330078125, 701.281982421875}}} 90 </div>
91 {{{187.410400390625, -343.557373046875}, {-86.16302490234375, -366.027099609375} , {-468.3883056640625, -25.736572265625}}} 91
92 </div> 92 <div id="sect15">
93 93 {{{1.7506141751022339, 2.3360264837265015}, {1.7500367307348632, 2.2955168052368 169}, {1.7498582651367187, 2.2545102586523438}, {1.7501136332812499, 2.213111408 9062502}}} id=11
94 <div id="quad16"> 94 {{{1.5655517578125, 2.2469482421875}, {1.6259765625, 2.2490234375}, {1.6875, 2.2 5}, {1.75, 2.25}}} id=20
95 {{{-353.9388427734375, 76.8973388671875}, {-36.00189208984375, 282.289306640625} , {-531.37969970703125, 683.95751953125}}} 95 {{{1.75, 2.25}, {1.7812500000000011, 2.2500000000000004}, {1.8127441406249989, 2 .2497558593749991}, {1.8444671630859375, 2.2492828369140625}}} id=4
96 {{{-353.9388427734375, 76.8973388671875}, {-779.3529052734375, 509.6165771484375 }, {-662.34088134765625, 124.4027099609375}}} 96 </div>
97 </div> 97
98 98 <div id="sect16">
99 <div id="quad17"> 99 {{{1.7506141751022339, 2.3360264837265015}, {1.7500367307348632, 2.2955168052368 169}, {1.7498582651367187, 2.2545102586523438}, {1.7501136332812499, 2.213111408 9062502}}} id=11
100 {{{-657.0289306640625, 681.611083984375}, {-991.8365478515625, 964.4644775390625 }, {-843.3585205078125, 904.47998046875}}} 100 {{{1.6569976806640625, 2.2492523193359375}, {1.687744140625, 2.249755859375}, {1 .71875, 2.25}, {1.75, 2.25}}} id=24
101 {{{-657.0289306640625, 681.611083984375}, {-763.1571044921875, 39.1097412109375} , {618.2041015625, 840.6429443359375}}} 101 {{{1.75, 2.25}, {1.7812500000000011, 2.2500000000000004}, {1.8127441406249989, 2 .2497558593749991}, {1.8444671630859375, 2.2492828369140625}}} id=4
102 </div> 102 </div>
103 103
104 <div id="quad18"> 104 <div id="sect17">
105 {{{-609.406005859375, -684.37506103515625}, {766.4923095703125, 583.657958984375 }, {-912.6832275390625, -949.553466796875}}} 105 {{{1.7500515994997787, 2.274902385537529}, {1.7499667235723877, 2.25441218286193 79}, {1.7499859492089846, 2.2338108337792986}, {1.7501136332812499, 2.2131114089 062502}}} id=13
106 {{{-609.406005859375, -684.37506103515625}, {774.140380859375, 82.2415771484375} , {540.9007568359375, -136.982666015625}}} 106 {{{1.6569976806640625, 2.2492523193359375}, {1.687744140625, 2.249755859375}, {1 .71875, 2.25}, {1.75, 2.25}}} id=24
107 </div> 107 {{{1.75, 2.25}, {1.7812500000000011, 2.2500000000000004}, {1.8127441406249989, 2 .2497558593749991}, {1.8444671630859375, 2.2492828369140625}}} id=4
108 108 </div>
109 <div id="quad19"> 109
110 {{{-657.0289306640625, 681.611083984375}, {-991.8365478515625, 964.4644775390625 }, {-843.3585205078125, 904.47998046875}}} 110 <div id="sect18">
111 {{{-657.0289306640625, 681.611083984375}, {-763.1571044921875, 39.1097412109375} , {618.2041015625, 840.6429443359375}}} 111 {{{1.7500515994997787, 2.274902385537529}, {1.7499667235723877, 2.25441218286193 79}, {1.7499859492089846, 2.2338108337792986}, {1.7501136332812499, 2.2131114089 062502}}} id=13
112 </div> 112 {{{1.6569976806640625, 2.2492523193359375}, {1.687744140625, 2.249755859375}, {1 .71875, 2.25}, {1.75, 2.25}}} id=24
113 113 {{{1.75, 2.25}, {1.7656249999999989, 2.25}, {1.7813110351562511, 2.2499389648437 5}, {1.7970561981201172, 2.2498188018798828}}} id=4
114 <div id="quad20"> 114 </div>
115 {{{123.2955322265625, -577.799560546875}, {-491.892578125, 704.91748046875}, {47 8.03759765625, -951.92333984375}}} 115
116 {{{123.2955322265625, -577.799560546875}, {-550.6966552734375, 812.216796875}, { -816.3184814453125, -705.0025634765625}}} 116 <div id="sect19">
117 </div> 117 {{{1.7500515994997787, 2.274902385537529}, {1.7499667235723877, 2.25441218286193 79}, {1.7499859492089846, 2.2338108337792986}, {1.7501136332812499, 2.2131114089 062502}}} id=13
118 118 {{{1.7033100128173828, 2.2498149871826172}, {1.7188110351562504, 2.2499389648437 504}, {1.7343749999999991, 2.2499999999999991}, {1.75, 2.25}}} id=28
119 <div id="quad21"> 119 {{{1.75, 2.25}, {1.7656249999999989, 2.25}, {1.7813110351562511, 2.2499389648437 5}, {1.7970561981201172, 2.2498188018798828}}} id=4
120 {{{123.2955322265625, -577.799560546875}, {-481.892578125, 704.91748046875}, {47 8.03759765625, -951.92333984375}}} 120 </div>
121 {{{123.2955322265625, -577.799560546875}, {-550.6966552734375, 812.216796875}, { -816.3184814453125, -705.0025634765625}}} 121
122 </div> 122 <div id="sect20">
123 123 {{{1.7500515994997787, 2.274902385537529}, {1.7500091615360831, 2.26465728419973 37}, {1.7499927489633849, 2.2543843962601757}, {1.7500029063906433, 2.2440853555 459359}}} id=13
124 <div id="quad22"> 124 {{{1.7033100128173828, 2.2498149871826172}, {1.7188110351562504, 2.2499389648437 504}, {1.7343749999999991, 2.2499999999999991}, {1.75, 2.25}}} id=28
125 {{{187.410400390625, -343.557373046875}, {-752.7930908203125, 431.57177734375}, {387.663330078125, 701.281982421875}}} 125 {{{1.75, 2.25}, {1.7656249999999989, 2.25}, {1.7813110351562511, 2.2499389648437 5}, {1.7970561981201172, 2.2498188018798828}}} id=4
126 {{{187.410400390625, -343.557373046875}, {-86.16302490234375, -366.027099609375} , {-468.3883056640625, -25.736572265625}}} 126 </div>
127 </div> 127
128 128 <div id="sect21">
129 <div id="quad23"> 129 {{{1.7500515994997787, 2.274902385537529}, {1.7500091615360831, 2.26465728419973 37}, {1.7499927489633849, 2.2543843962601757}, {1.7500029063906433, 2.2440853555 459359}}} id=13
130 {{{-341.26922607421875, 964.1964111328125}, {883.2567138671875, 812.730102539062 5}, {286.0372314453125, 94.979248046875}}} 130 {{{1.7033100128173828, 2.2498149871826172}, {1.7188110351562504, 2.2499389648437 504}, {1.7343749999999991, 2.2499999999999991}, {1.75, 2.25}}} id=28
131 {{{-341.26922607421875, 964.1964111328125}, {-158.90765380859375, 597.1875}, {-2 82.2255859375, 262.430908203125}}} 131 {{{1.75, 2.25}, {1.7578125000000004, 2.25}, {1.7656402587890616, 2.2499847412109 375}, {1.7734830379486084, 2.2499544620513916}}} id=4
132 </div> 132 </div>
133 133
134 <div id="quad24"> 134 <div id="sect22">
135 {{{123.2955322265625, -577.799560546875}, {-481.892578125, 704.91748046875}, {47 8.03759765625, -951.92333984375}}} 135 {{{1.7500515994997787, 2.274902385537529}, {1.7500091615360831, 2.26465728419973 37}, {1.7499927489633849, 2.2543843962601757}, {1.7500029063906433, 2.2440853555 459359}}} id=13
136 {{{123.2955322265625, -577.799560546875}, {-550.6966552734375, 812.216796875}, { -816.3184814453125, -705.0025634765625}}} 136 {{{1.7266085147857666, 2.2499539852142334}, {1.7343902587890614, 2.2499847412109 362}, {1.7421875000000011, 2.2500000000000013}, {1.75, 2.25}}} id=32
137 {{{417.3499131065152, -577.799560546875}, {417.3499131065152, -699.6008748290115 6}, {331.22337542585541, -785.72740374616797}}} 137 {{{1.75, 2.25}, {1.7578125000000004, 2.25}, {1.7656402587890616, 2.2499847412109 375}, {1.7734830379486084, 2.2499544620513916}}} id=4
138 </div> 138 </div>
139 139
140 <div id="quad25"> 140 <div id="sect23">
141 {{{922.6107177734375, 291.412109375}, {-939.361572265625, 589.8492431640625}, {- 515.70941162109375, 120.2764892578125}}} 141 {{{1.7500075296736033, 2.2595140978078994}, {1.749999391463374, 2.25437785806650 53}, {1.7499978276770138, 2.2492348759030554}, {1.7500029063906433, 2.2440853555 459359}}} id=17
142 {{{922.6107177734375, 291.412109375}, {148.5115966796875, -751.42095947265625}, {-347.47503662109375, 331.1798095703125}}} 142 {{{1.7266085147857666, 2.2499539852142334}, {1.7343902587890614, 2.2499847412109 362}, {1.7421875000000011, 2.2500000000000013}, {1.75, 2.25}}} id=32
143 {{{922.6107177734375, -143.9114969433939}, {742.29377357777753, -143.91149694339 39}, {614.79044900323777, -16.408159395199732}}} 143 {{{1.75, 2.25}, {1.7578125000000004, 2.25}, {1.7656402587890616, 2.2499847412109 375}, {1.7734830379486084, 2.2499544620513916}}} id=4
144 {{{487.2871114550436, 291.412109375}, {487.2871114550436, 471.72905357065997}, { 614.79044900323777, 599.23237814519973}}} 144 </div>
145 </div> 145
146 146 <div id="sect24">
147 <div id="quad26"> 147 {{{1.7500075296736033, 2.2595140978078994}, {1.749999391463374, 2.25437785806650 53}, {1.7499978276770138, 2.2492348759030554}, {1.7500029063906433, 2.2440853555 459359}}} id=17
148 {{{187.410400390625, -343.557373046875}, {-752.7930908203125, 431.57177734375}, {387.663330078125, 701.281982421875}}} 148 {{{1.7266085147857666, 2.2499539852142334}, {1.7343902587890614, 2.2499847412109 362}, {1.7421875000000011, 2.2500000000000013}, {1.75, 2.25}}} id=32
149 {{{187.410400390625, -343.557373046875}, {-86.16302490234375, -366.027099609375} , {-468.3883056640625, -25.736572265625}}} 149 {{{1.75, 2.25}, {1.7539062499999991, 2.25}, {1.7578163146972661, 2.2499961853027 344}, {1.7617301642894745, 2.2499885857105255}}} id=4
150 {{{33.221887415632978, -343.557373046875}, {33.221887415632978, -279.69039894717 827}, {78.38265915086852, -234.52963180711851}}} 150 </div>
151 </div> 151
152 152 <div id="sect25">
153 <div id="quad27"> 153 {{{1.7500075296736033, 2.2595140978078994}, {1.749999391463374, 2.25437785806650 53}, {1.7499978276770138, 2.2492348759030554}, {1.7500029063906433, 2.2440853555 459359}}} id=17
154 {{{-173.3448486328125, -962.89422607421875}, {-778.321533203125, -161.4763793945 3125}, {-196.77374267578125, -736.40155029296875}}} 154 {{{1.7382927238941193, 2.2499885261058807}, {1.7421913146972665, 2.2499961853027 353}, {1.7460937499999996, 2.2499999999999996}, {1.75, 2.25}}} id=36
155 {{{-173.3448486328125, -962.89422607421875}, {652.3017578125, -400.6781616210937 5}, {-386.7855224609375, 361.1614990234375}}} 155 {{{1.75, 2.25}, {1.7539062499999991, 2.25}, {1.7578163146972661, 2.2499961853027 344}, {1.7617301642894745, 2.2499885857105255}}} id=4
156 {{{-270.84959533883426, -865.38947936819704}, {-230.46180860703427, -825.0016885 2687921}, {-173.3448486328125, -825.00168852687921}}} 156 </div>
157 {{{-75.840101926790737, -865.38947936819704}, {-35.4523110854729, -905.777266099 99695}, {-35.4523110854729, -962.89422607421875}}} 157
158 </div> 158 <div id="sect26">
159 159 {{{1.7500002616856762, 2.2518047069078144}, {1.7499994883020116, 2.2492332413546 396}, {1.7500003670338282, 2.2466601157244943}, {1.7500029063906433, 2.244085355 5459359}}} id=19
160 <div id="quad28"> 160 {{{1.75, 2.25}, {1.7539062499999991, 2.25}, {1.7578163146972661, 2.2499961853027 344}, {1.7617301642894745, 2.2499885857105255}}} id=4
161 {{{344.2755126953125, -689.900390625}, {743.6728515625, 512.8448486328125}, {928 .598388671875, 111.946044921875}}} 161 </div>
162 {{{344.2755126953125, -689.900390625}, {-950.03106689453125, -511.25741577148437 }, {850.8173828125, 798.4874267578125}}} 162
163 {{{344.2755126953125, -689.900390625}, {850.8173828125, 798.4874267578125}}} 163 <div id="sect27">
164 {{{344.2755126953125, -689.900390625}, {391.39917554828793, -551.43545842779145} }} 164 {{{1.7500002616856762, 2.2518047069078144}, {1.7499994883020116, 2.2492332413546 396}, {1.7500003670338282, 2.2466601157244943}, {1.7500029063906433, 2.244085355 5459359}}} id=19
165 </div> 165 {{{1.75, 2.25}, {1.7519531250000011, 2.2499999999999991}, {1.7539072036743153, 2 .249999046325684}, {1.7558622322976589, 2.2499971427023411}}} id=4
166 166 </div>
167 <div id="quad29"> 167
168 {{{351.8946533203125, 512.8131103515625}, {-294.22332763671875, 183.220092773437 5}, {624.4842529296875, 862.0753173828125}}} 168 <div id="sect28">
169 {{{351.8946533203125, 512.8131103515625}, {489.1907958984375, -543.4212646484375 }, {-432.7445068359375, 812.5205078125}}} 169 {{{1.7500002616856762, 2.2518047069078144}, {1.749999874993843, 2.25051897413122 73}, {1.7499999013308822, 2.2492328263353962}, {1.7500003417604797, 2.2479462667 113941}}} id=19
170 </div> 170 {{{1.75, 2.25}, {1.7519531250000011, 2.2499999999999991}, {1.7539072036743153, 2 .249999046325684}, {1.7558622322976589, 2.2499971427023411}}} id=4
171 171 </div>
172 <div id="quad30"> 172
173 {{{627.6910400390625, 81.144287109375}, {168.9248046875, -211.72735595703125}, { -61.57086181640625, 915.171875}}} 173 <div id="sect29">
174 {{{627.6910400390625, 81.144287109375}, {918.159423828125, -325.468994140625}, { 359.0523681640625, 817.4888916015625}}} 174 {{{1.7500002616856762, 2.2518047069078144}, {1.749999874993843, 2.25051897413122 73}, {1.7499999013308822, 2.2492328263353962}, {1.7500003417604797, 2.2479462667 113941}}} id=19
175 {{{235.78221371860315, 81.144287109375}, {235.78221371860315, 243.47824037936314 }, {350.56965608373537, 358.26567106470213}}}, 175 {{{1.75, 2.25}, {1.7509765624999989, 2.2499999999999996}, {1.7519533634185802, 2 .2499997615814205}, {1.752930402290076, 2.249999285209924}}} id=4
176 </div> 176 </div>
177 177
178 <div id="quad31"> 178 <div id="sect30">
179 {{{178.1549072265625, 62.724609375}, {541.3643798828125, 223.823486328125}, {-44 6.77471923828125, -15.990478515625}}} 179 {{{1.7500002616856762, 2.2518047069078144}, {1.7500000683397601, 2.2511618405195 208}, {1.7499999782510609, 2.2505188703764163}, {1.7499999915525417, 2.249875796 8773848}}} id=19
180 {{{178.1549072265625, 62.724609375}, {-347.14031982421875, -834.27191162109375}, {-495.13888549804687, 96.476806640625}}} 180 {{{1.75, 2.25}, {1.7509765624999989, 2.2499999999999996}, {1.7519533634185802, 2 .2499997615814205}, {1.752930402290076, 2.249999285209924}}} id=4
181 </div> 181 </div>
182 182
183 <div id="quad32"> 183 <div id="sect31">
184 {{{-809.41009521484375, 370.4566650390625}, {622.44677734375, -166.97119140625}, {-285.6748046875, 333.81005859375}}}, 184 {{{1.7500002616856762, 2.2518047069078144}, {1.7500000683397601, 2.2511618405195 208}, {1.7499999782510609, 2.2505188703764163}, {1.7499999915525417, 2.249875796 8773848}}} id=19
185 {{{-809.41009521484375, 370.4566650390625}, {-110.36346435546875, -656.960449218 75}, {906.4796142578125, 530.2061767578125}}} 185 {{{1.75, 2.25}, {1.7504882812500011, 2.2500000000000004}, {1.7509766221046437, 2 .2499999403953543}, {1.7514650225057267, 2.2499998212442733}}} id=4
186 </div> 186 </div>
187 187
188 <div id="quad33"> 188 <div id="sect32">
189 {{{-918.58624267578125, 653.6695556640625}, {-639.37548828125, 61.493896484375}, {-198.9605712890625, 243.704345703125}}}, 189 {{{1.7500000491263352, 2.2508403295591259}, {1.7500000040986061, 2.2505188445374 351}, {1.7499999849018013, 2.2501973336269003}, {1.7499999915525417, 2.249875796 8773848}}} id=25
190 {{{-918.58624267578125, 653.6695556640625}, {-302.093505859375, -107.10955810546 875}, {696.4962158203125, 600.738525390625}}} 190 {{{1.75, 2.25}, {1.7504882812500011, 2.2500000000000004}, {1.7509766221046437, 2 .2499999403953543}, {1.7514650225057267, 2.2499998212442733}}} id=4
191 </div> 191 </div>
192 192
193 <div id="quad34"> 193 <div id="sect33">
194 {{{-610.4193115234375, 861.173095703125}, {403.3203125, 215.3988037109375}, {-37 3.5546875, 179.88134765625}}}, 194 {{{1.7500000491263352, 2.2508403295591259}, {1.7500000040986061, 2.2505188445374 351}, {1.7499999849018013, 2.2501973336269003}, {1.7499999915525417, 2.249875796 8773848}}} id=25
195 {{{-610.4193115234375, 861.173095703125}, {-757.244140625, -222.137451171875}, { 705.892822265625, 87.4090576171875}}} 195 {{{1.75, 2.25}, {1.7502441406249989, 2.25}, {1.7504882961511623, 2.2499999850988 388}, {1.7507324665712076, 2.2499999553037924}}} id=4
196 </div> 196 </div>
197 197
198 <div id="quad35"> 198 <div id="sect34">
199 {{{282.5767822265625, -529.4022216796875}, {392.0968017578125, 768.1014404296875 }, {712.11572265625, 189.19677734375}}}, 199 {{{1.7500000009600125, 2.2503580826161893}, {1.7499999913636877, 2.2501973271671 556}, {1.7499999882271713, 2.2500365652521426}, {1.7499999915525417, 2.249875796 8773848}}} id=27
200 {{{282.5767822265625, -529.4022216796875}, {699.360595703125, 465.6171875}, {438 .5755615234375, 125.5230712890625}}} 200 {{{1.75, 2.25}, {1.7502441406249989, 2.25}, {1.7504882961511623, 2.2499999850988 388}, {1.7507324665712076, 2.2499999553037924}}} id=4
201 </div> 201 </div>
202 202
203 <div id="quad36"> 203 <div id="sect35">
204 {{{-170.1510009765625, -184.905517578125}, {654.734130859375, 120.339599609375}, {-470.98443603515625, -69.4737548828125}}}, 204 {{{1.7500000009600125, 2.2503580826161893}, {1.7499999913636877, 2.2501973271671 556}, {1.7499999882271713, 2.2500365652521426}, {1.7499999915525417, 2.249875796 8773848}}} id=27
205 {{{-170.1510009765625, -184.905517578125}, {-500.9822998046875, -148.40911865234 375}, {-446.35821533203125, -840.5694580078125}}} 205 {{{1.75, 2.25}, {1.7501220703125004, 2.25}, {1.7502441443502894, 2.2499999962747 097}, {1.7503662221124614, 2.2499999888250386}}} id=4
206 </div> 206 </div>
207 207
208 <div id="quad37"> 208 <div id="sect36">
209 {{{-119.55023193359375, -39.2008056640625}, {-618.14306640625, -620.141967773437 5}, {-779.53790283203125, -681.9923095703125}}},
210 {{{-119.55023193359375, -39.2008056640625}, {365.968994140625, 55.4974365234375} , {98.1297607421875, -192.474609375}}}
211 </div>
212
213 <div id="quad38">
214 {{{607.9136962890625, 484.1448974609375}, {280.619140625, 982.736572265625}, {-5 77.5596923828125, 798.9134521484375}}},
215 {{{607.9136962890625, 484.1448974609375}, {374.318115234375, -590.5146484375}, { -258.30438232421875, 592.958984375}}}
216 </div>
217
218 <div id="quad39">
219 {{{-491.48846435546875, -470.9105224609375}, {109.7149658203125, -989.5384521484 375}, {-275.900390625, 657.1920166015625}}},
220 {{{-491.48846435546875, -470.9105224609375}, {-796.935791015625, 191.326171875}, {-852.120849609375, 62.06005859375}}}
221 </div>
222
223 <div id="quad40">
224 {{{-872.76458740234375, -163.30078125}, {723.6697998046875, 177.8204345703125}, {206.470703125, 147.9564208984375}}},
225 {{{-872.76458740234375, -163.30078125}, {556.937744140625, 715.4345703125}, {627 .348388671875, 77.0643310546875}}}
226 </div>
227
228 <div id="quad108">
229 {{{282.5767822265625, -529.4022216796875}, {392.0968017578125, 768.1014404296875 }, {712.11572265625, 189.19677734375}}},
230 {{{282.5767822265625, -529.4022216796875}, {699.360595703125, 465.6171875}, {438 .5755615234375, 125.5230712890625}}}
231 </div>
232
233 <div id="quad159">
234 {{{-868.3076171875, -212.74591064453125}, {-208.84014892578125, -57.353515625}, {393.79736328125, -986.03607177734375}}},
235 {{{-868.3076171875, -212.74591064453125}, {371.0980224609375, -960.9017333984375 }, {-236.2821044921875, -441.20074462890625}}}
236 </div>
237
238 <div id="quad212">
239 {{{-610.4193115234375, 861.173095703125}, {403.3203125, 215.3988037109375}, {-37 3.5546875, 179.88134765625}}},
240 {{{-610.4193115234375, 861.173095703125}, {-757.244140625, -222.137451171875}, { 705.892822265625, 87.4090576171875}}}
241 </div>
242
243 <div id="quad232">
244 {{{766.497802734375, 675.660400390625}, {639.0235595703125, 351.4776611328125}, {345.9315185546875, 624.685791015625}}},
245 {{{766.497802734375, 675.660400390625}, {-901.72650146484375, 923.99169921875}, {755.665283203125, 416.728759765625}}}
246 </div>
247
248 <div id="quad379">
249 {{{-872.76458740234375, -163.30078125}, {723.6697998046875, 177.8204345703125}, {206.470703125, 147.9564208984375}}},
250 {{{-872.76458740234375, -163.30078125}, {556.937744140625, 715.4345703125}, {627 .348388671875, 77.0643310546875}}}
251 </div>
252
253 <div id="quad413">
254 {{{-127.60784912109375, 384.614990234375}, {-184.46685791015625, 717.57287597656 25}, {-981.56524658203125, -827.18109130859375}}},
255 {{{-127.60784912109375, 384.614990234375}, {-125.78131103515625, 751.18774414062 5}, {562.529541015625, -277.5535888671875}}}
256 </div>
257
258 <div id="quad179">
259 {{{-595.956298828125, -113.24383544921875}, {-730.611572265625, 481.532348632812 5}, {505.58447265625, -504.9130859375}}},
260 {{{-595.956298828125, -113.24383544921875}, {-971.0836181640625, -849.7390747070 3125}, {-32.39227294921875, -906.3277587890625}}}
261 </div>
262
263 <div id="quad584">
264 {{{-406.65435791015625, 599.96630859375}, {-566.71881103515625, -400.65362548828 125}, {-486.0682373046875, 100.34326171875}}},
265 {{{-406.65435791015625, 599.96630859375}, {799.783935546875, 992.77783203125}, { 180.6688232421875, -490.0054931640625}}}
266 </div>
267
268 <div id="quad653">
269 {{{-46.6143798828125, 164.224853515625}, {-161.7724609375, 327.61376953125}, {16 8.5106201171875, -948.4150390625}}},
270 {{{-46.6143798828125, 164.224853515625}, {412.9364013671875, -199.26715087890625 }, {-278.044677734375, 472.3961181640625}}}
271 </div>
272
273 <div id="quad809">
274 {{{-176.8541259765625, -275.9761962890625}, {-723.969482421875, -7.4718017578125 }, {931.6959228515625, 231.6737060546875}}},
275 {{{-176.8541259765625, -275.9761962890625}, {-250.86737060546875, -748.814331054 6875}, {-96.77099609375, -287.76336669921875}}}
276 </div>
277
278 <div id="quad14a">
279 {{{-609.406005859375, -684.37506103515625}, {766.4923095703125, 583.657958984375 }, {-912.6832275390625, -949.553466796875}}},
280 {{{-609.406005859375, -684.37506103515625}, {774.140380859375, 82.2415771484375} , {540.9007568359375, -136.982666015625}}}
281 </div>
282
283 <div id="quad22a">
284 {{{-728.5626220703125, 141.134521484375}, {749.9122314453125, -645.93359375}, {6 7.1751708984375, -285.85528564453125}}},
285 {{{-728.5626220703125, 141.134521484375}, {-841.0341796875, -988.058349609375}, {34.87939453125, -489.359130859375}}}
286 {{{276.48354206343231, -395.24293552482953}, {-728.5626220703125, 141.1345214843 75}}}
287 {{{fX=97.702285839737073, -301.95147049201717}, {-728.5626220703125, 141.1345214 84375}}}
288 {{{fX=-52.525628917174856, -536.31069276053427}, {-728.5626220703125, 141.134521 484375}}}
289 {{{fX=-5.2463328209585285, -511.63085965304060}, {-728.5626220703125, 141.134521 484375}}}
290 </div>
291
292 <div id="quad77">
293 {{{383.7933349609375, -397.5057373046875}, {480.7408447265625, 92.927490234375}, {690.7930908203125, -267.44964599609375}}},
294 {{{383.7933349609375, -397.5057373046875}, {83.3685302734375, 619.781005859375}, {688.14111328125, 416.241455078125}}}
295 </div>
296
297 <div id="quad94">
298 {{{627.6910400390625, 81.144287109375}, {168.9248046875, -211.72735595703125}, { -61.57086181640625, 915.171875}}},
299 {{{627.6910400390625, 81.144287109375}, {918.159423828125, -325.468994140625}, { 359.0523681640625, 817.4888916015625}}}
300 {{{564.43435948662466, 47.034527772832369}, {627.6910400390625, 81.144287109375} }}
301 {{{699.34014109378302, 79.147174806567705}, {627.6910400390625, 81.144287109375} }}
302 </div>
303
304 <div id="quad4a">
305 {{{187.410400390625, -343.557373046875}, {-752.7930908203125, 431.57177734375}, {387.663330078125, 701.281982421875}}},
306 {{{187.410400390625, -343.557373046875}, {-86.16302490234375, -366.027099609375} , {-468.3883056640625, -25.736572265625}}}
307 </div>
308
309 <div id="quad0">
310 {{{-708.0077926931004413, -154.6166947224404566}, {-701.0429781735874712, -128.8 517387364408933}, {505.58447265625, -504.9130859375}}},
311 {{{-708.0077926931004413, -154.6166947224404566}, {-721.5125661899801344, -174.4 028951148648048}, {-32.39227294921875, -906.3277587890625}}}
312 {{{-707.8363172079705237, -154.25350453766481}, {-708.0077926931004413, -154.616 6947224404566}}}
313 {{{-708.1792267111628689, -154.9799046892118213}, {-708.0077926931004413, -154.6 166947224404566}}}
314 </div>
315
316 <div id="quad999">
317 {{{-708.00779269310044, -154.61669472244046}, {-707.92342686353186, -154.3045999 9551294}, {505.58447265625, -504.9130859375}}},
318 {{{-708.00779269310044, -154.61669472244046}, {-708.1713780141481, -154.85636789 757655}, {-32.39227294921875, -906.3277587890625}}}
319 {{{-708.0077672218041, -154.61664072892336}, {-708.00779269310044, -154.61669472 244046}}}
320 {{{-708.00781827681976, -154.61674895426012}, {-708.00779269310044, -154.6166947 2244046}}}
321 </div>
322
323 <div id="quad113">
324 {{{425.018310546875, -866.61865234375}, {-918.76531982421875, 209.05322265625}, {964.34716796875, 199.52587890625}}},
325 {{{425.018310546875, -866.61865234375}, {703.10693359375, -955.0738525390625}, { -952.24664306640625, -717.94775390625}}}
326 </div>
327
328 <div id="quad136">
329 {{{178.1549072265625, 62.724609375}, {541.3643798828125, 223.823486328125}, {-44 6.77471923828125, -15.990478515625}}},
330 {{{178.1549072265625, 62.724609375}, {-347.14031982421875, -834.27191162109375}, {-495.138885498046875, 96.476806640625}}}
331 </div>
332
333 <div id="quad206">
334 {{{-503.007415771484375, -318.59490966796875}, {-798.330810546875, -881.21630859 375}, {-127.2027587890625, 769.6160888671875}}},
335 {{{-503.007415771484375, -318.59490966796875}, {-153.6217041015625, -776.8967285 15625}, {-378.43701171875, -296.3197021484375}}}
336 {{{-468.9176053311167607, -89.39573455985038208}, {-503.007415771484375, -318.59 490966796875}}}
337 {{{-356.1573846604815685, -497.6768266540607328}, {-503.007415771484375, -318.59 490966796875}}}
338 {{{-559.0376987487186398, -420.2054253473417589}, {-503.007415771484375, -318.59 490966796875}}}
339 {{{-431.6586315464865606, -409.8353728177644371}, {-503.007415771484375, -318.59 490966796875}}}
340 </div>
341
342 <div id="quad640">
343 {{{412.260498046875, 49.193603515625}, {838.97900390625, 86.9951171875}, {427.78 96728515625, -605.6881103515625}}},
344 {{{412.260498046875, 49.193603515625}, {-995.54583740234375, 990.032470703125}, {-881.18670654296875, 461.211669921875}}}
345 </div>
346
347 <div id="quad3160">
348 {{{426.645751953125, 813.79150390625}, {-387.23828125, -588.89483642578125}, {79 2.4261474609375, -704.4637451171875}}},
349 {{{426.645751953125, 813.79150390625}, {19.24896240234375, -416.09906005859375}, {233.8497314453125, 350.778564453125}}}
350 </div>
351
352 <div id="quad35237">
353 {{{-770.8492431640625, 948.2369384765625}, {-853.37066650390625, 972.03015136718 75}, {-200.62042236328125, -26.7174072265625}}},
354 {{{-770.8492431640625, 948.2369384765625}, {513.602783203125, 578.8681640625}, { 960.641357421875, -813.69757080078125}}}
355 </div>
356
357 <div id="quad37226">
358 {{{563.8267822265625, -107.4566650390625}, {-44.67724609375, -136.57452392578125 }, {492.3856201171875, -268.79644775390625}}},
359 {{{563.8267822265625, -107.4566650390625}, {708.049072265625, -100.7778930664062 5}, {-48.88226318359375, 967.9022216796875}}}
360 </div>
361
362 <div id="quad67242">
363 {{{598.857421875, 846.345458984375}, {-644.095703125, -316.12921142578125}, {-97 .64599609375, 20.6158447265625}}},
364 {{{598.857421875, 846.345458984375}, {715.7142333984375, 955.3599853515625}, {-9 19.9478759765625, 691.611328125}}}
365 </div>
366
367 <div id="quad208">
368 {{{481.1463623046875, -687.09613037109375}, {643.64697265625, -951.9462890625}, {162.5869140625, 698.7342529296875}}},
369 {{{481.1463623046875, -687.09613037109375}, {171.8175048828125, -919.07977294921 875}, {153.3433837890625, -587.43072509765625}}}
370 </div>
371
372 <div id="quad8a">
373 {{{344.2755126953125, -689.900390625}, {743.6728515625, 512.8448486328125}, {928 .598388671875, 111.946044921875}}},
374 {{{344.2755126953125, -689.900390625}, {-950.03106689453125, -511.25741577148437 }, {850.8173828125, 798.4874267578125}}}
375 </div>
376
377 <div id="quad8b">
378 {{{344.2755126953125, -689.900390625}, {928.598388671875, 111.946044921875}, {74 3.6728515625, 512.8448486328125}}},
379 {{{344.2755126953125, -689.900390625}, {-950.03106689453125, -511.25741577148437 }, {850.8173828125, 798.4874267578125}}}
380 </div>
381
382 <div id="quad8741">
383 {{{944.9024658203125, 939.454345703125}, {-971.06219482421875, -914.243957519531 25}, {-878.764404296875, -297.61602783203125}}},
384 {{{944.9024658203125, 939.454345703125}, {-838.96612548828125, -785.837646484375 }, {-126.80029296875, 921.1981201171875}}}
385 {{{107.03238931174118, 218.460612766889}, {944.9024658203125, 939.454345703125}} }
386 {{{-292.72752350740279, 99.917575976335598}, {944.9024658203125, 939.45434570312 5}}}
387 </div>
388
389 <div id="quad89987">
390 {{{939.4808349609375, 914.355224609375}, {-357.7921142578125, 590.842529296875}, {736.8936767578125, -350.717529296875}}},
391 {{{939.4808349609375, 914.355224609375}, {-182.85418701171875, 634.4552001953125 }, {-509.62615966796875, 576.1182861328125}}}
392 </div>
393
394 <div id="simplifyQuadratic36">
395 {{{1.9474306106567383, 2.3777823448181152}, {1.9234547048814592, 2.2418855043499 213}, {1.8885438442230225, 2.1114561557769775}}}
396 {{{1.9474306106567383, 2.3777823448181152}, {2.0764266380046235, 2.2048800651418 379}, {1.8888888359069824, 2.1111111640930176}}}
397 </div>
398
399 <div id="simplifyQuadratic58">
400 {{326.236786,205.854996}, {329.104431,231.663818}, {351.512085,231.663818}}
401 {{303.12088,141.299606}, {330.463562,217.659027}}
402 </div>
403
404 <div id="simplifyQuadratic58a">
405 {{{326.23678588867188, 205.85499572753906}, {328.04376176056422, 222.11778818951 981}, {337.6092529296875, 228.13298034667969}
406 {{{303.12088012695312, 141.29960632324219}, {330.46356201171875, 217.65902709960 937}
407 </div>
408
409 <div id="quadratic58again">
410 {{322.935669,231.030273}, {312.832214,220.393295}, {312.832214,203.454178}}
411 {{322.12738,233.397751}, {295.718353,159.505829}}
412 </div>
413
414 <div id="simplifyQuadratic56">
415 {{{380.29449462890625, 140.44486999511719}, {387.29080200195312, 136.67460632324 219}, {396.0399169921875, 136.67460632324219}}}
416 {{{380.29449462890625, 140.44486999511719}, {388.29925537109375, 136.67460632324 219}, {398.16494750976562, 136.67460632324219}}}
417 {{{380.29449462890625, 140.44486999511719}, {387.692810, 137.858429}}}
418 </div>
419
420 <div id="simplifyQuadratic56a">
421 {{{380.29449462890625, 140.44486999511719}, {387.29079954793264, 136.67460632324 219}, {396.0399169921875, 136.67460632324219}}}
422 {{{380.29449462890625, 140.44486999511719}, {388.29925767018653, 136.67460632324 219}, {398.16494750976562, 136.67460632324219}}}
423 {{fX=380.29449462890625 fY=140.44486999511719 }, {fX=398.16494750976562 fY=136.6 7460632324219 }} }
424 {{fX=380.29449462890625 fY=140.44486999511719 }, {fX=396.03991699218750 fY=136.6 7460632324219 }}
425 </div>
426
427 <div id="simplifyQuadratic27">
428 {{{1, 1}, {1, 0.666666687f}, {0.888888896f, 0.444444448f}}}
429 {{{1, 1}, {1, 0.5f}, {0, 0}}}
430 {{fX=1.0000000000000000 fY=1.0000000000000000 }, {fX=0.00000000000000000 fY=0.00 000000000000000 }} }
431 {{fX=1.0000000000000000 fY=1.0000000000000000 }, {fX=0.88888889551162720 fY=0.44 444444775581360 }} }
432 </div>
433
434 <div id="cubicOp7d">
435 {{{0.7114982008934021, 1.6617077589035034}, {0.51239079236984253, 1.495265722274 7803}, {0.27760171890258789, 1.2776017189025879}, {0, 1}}}
436 {{{0.7114982008934021, 1.6617077589035034}, {0.20600014925003052, 1.785488843917 8467}, {9.8686491813063348e-017, 1.9077447652816772}, {0, 1}}}
437 </div>
438
439 <div id="cubicOp25i">
440 {{{3.3856770992279053, 1.6298094987869263}, {3.777235186270762, 1.27447162372771 14}, {3.7191683314895783, 1.4127666421509713}, {3.3995792865753174, 1.6371387243 270874}}}
441 {{{3.3856770992279053, 1.6298094987869263}, {3.3902986605112582, 1.6322361865810 757}, {3.3949326825525121, 1.6346792563210237}, {3.3995792865753174, 1.637138724 3270874}}}
442 {{3.3856770992279053, 1.6298094987869263 }, {3.3995792865753174, 1.6371387243270 874 }}
443 </div>
444
445 <div id="eldorado1">
446 {{{1006.69513f, 291}, {1023.26367f, 291}, {1033.84021f, 304.431458f}, {1030.3183 6f, 321}}}
447 {{{1030.318359375, 321}, {1036.695068359375, 291}}}
448 {{fX=1030.3183593750000 fY=321.00000000000000 }, {fX=1006.6951293945312 fY=291.0 0000000000000 }} }
449 </div>
450
451 <div id="carpetplanet1">
452 {{fX=67.000000000000000, 913.00000000000000 }, {194.00000000000000, 1041.0000000 000000 }} }
453 {{fX=67.000000000000000, 913.00000000000000 }, {67.662002563476562, 926.00000000 000000 }} }
454 {{{67, 913}, {67, 917.388977f}, {67.223999f, 921.726013f}, {67.6620026f, 926}}}
455 {{{67, 913}, {67, 983.692017f}, {123.860001f, 1041}, {194, 1041}}}
456 {{{67, 913}, {67.17070902440698, 919.69443917507760}}}
457 </div>
458
459 <div id="cubicOp104">
460 {{{2.25, 2.5}, {4.5, 1}}}
461 {{{2.25, 2.5}, {3.0833333333333321, 1.9999999999999973}, {4.0277778307596899, 1. 2777777777777759}, {4.8611111640930176, 1}}}
462 {{{2.25, 2.5}, {1.9476099234472042, 2.6814340459316774}, {1.6598502000264239, 2. 8336073904096661}, {1.3973386287689209, 2.9246666431427002}}}
463 {{{2.25, 2.5}, {1.2674896717071533, 3.1550068855285645}}}
464 </div>
465
466 <div id="cubicOp105">
467 {{{2.4060275554656982, 3.4971563816070557}, {2.9702522134213849, 4.2195279679982 622}, {3.8172613958721247, 5.0538091166976979}, {5, 6}}}
468 {{{2.4060275554656982, 3.4971563816070557}, {3.4194286958002023, 3.5574883660881 684}, {4.0077197935900575, 2.6628073781813661}, {2.2602717876434326, 0.335456222 29576111}}}
469 </div>
470
471 <div id="cubicOp106">
472 {{{0.80825299024581909, 1.9691258668899536}, {0.8601454496383667, 1.988554120063 7817}, {0.92434978485107422, 2}, {1, 2}}}
473 {{{0.80825299024581909, 1.9691258668899536}, {2.2400102615356445, 3.596683740615 8447}, {2.5486805438995361, 3.362929105758667}, {2.494147777557373, 2.5976591110 229492}}}
474 {{{0.80825299024581909, 1.9691258668899536}, {2.494147777557373, 2.5976591110229 492}}}
475 {{{0.80825299024581909, 1.9691258668899536}, {1, 2}}}
476 </div>
477
478 <div id="cubicOp109">
479 {{{5, 4}, {5.443139240552143931, 3.556860759447856069}, {5.297161243696338673, 3 .702838775882067335}, {4.649086475372314453, 3.654751062393188477}}}
480 {{{5, 4}, {4.876459521889748849, 3.876459521889748849}, {4.759596556247283949, 3 .761504502886134915}, {4.649086475372314453, 3.654751062393188477}}}
481 </div>
482
483 <div id="skpwww_joomla_org_23">
484 {{{421, 378}, {421, 380.209137f}, {418.761414f, 382}, {416, 382}}}
485 {{{320, 378}, {421, 378.000031f}}}
486 {{{421, 378.000031f}, {421, 383}}}
487 {{{416, 383}, {418.761414f, 383}, {421, 380.761414f}, {421, 378}}}
488 </div>
489
490 <div id="xop1i">
491 {{5.000,1.000}, {5.191,0.809}, {5.163,0.837}, {4.993,1.000}}
492 {{5.000,1.000}, {4.968,1.024}}
493 {{5.000,1.000}, {4.998,1.000}, {4.995,1.000}, {4.993,1.000}}
494 </div>
495
496 <div id="xop1u">
497 {{3.500,3.500}, {3.000,4.000}, {2.500,4.500}, {1.000,4.000}}
498 {{3.500,3.500}, {3.113,3.887}, {2.725,4.275}, {2.338,3.732}}
499 </div>
500
501 <div id="xOp2i">
502 {{{2, 3}, {1.3475509011665685, 4.9573472965002949}, {2.8235509286078759, 3.50917 59365574173}, {3.6505906581878662, 1.9883773326873779}}}
503 {{{2, 3}, {2.4604574005585795, 2.654656949581065}, {3.0269255632437986, 2.309313 7214344743}, {3.6505906581878662, 1.9883773326873779}}}
504 {{{2, 3}, {1.0000000000000013, 3.7500000000000004}, {0.500000000000001, 4.5}, {1 , 5}}}
505 </div>
506
507 <div id="testQuadratic56">
508 {{{380.29449462890625, 140.44486999511719}, {379.59701460635523, 140.82073748821 79}, {378.91729736328125, 141.23385620117187}}}
509 {{{380.29449462890625, 140.44486999511719}, {387.29079954793264, 136.67460632324 219}, {396.0399169921875, 136.67460632324219}}}
510 {{{380.29449462890625, 140.44486999511719}, {388.29925767018653, 136.67460632324 219}, {398.16494750976562, 136.67460632324219}}}
511 </div>
512
513 <div id="testQuad15">
514 {{{1, 3}, {1, 1}}}
515 {{{1, 3}, {0, 0}}}
516 {{{1, 3}, {2, 0}, {0, 0}}}
517 </div>
518
519 <div id="testQuad21">
520 {{{0, 0}, {1, 1}}}
521 {{{0, 0}, {3, 0}, {2, 3}}}
522 {{{0, 0}, {2, 3}}}
523 {{{0, 0}, {2, 1}}}
524 </div>
525
526 <div id="testQuad22">
527 {{{0, 0}, {1.2000000476837158, 0.80000001192092896}}}
528 {{{0, 0}, {2, 0}}}
529 {{{0, 0}, {0, 1}, {3, 2}}}
530 {{{0, 0}, {1, 1}}}
531 </div>
532
533 <div id="testQuad23">
534 {{{1, 3}, {1.9090908914804459, 1.1818182170391081}, {0.33884298801422119, 1.0165 289640426636}}}
535 {{{1, 3}, {0.33884298801422119, 1.0165289640426636}}}
536 {{{1, 3}, {3, 0}}}
537 </div>
538
539 <div id="cubicOp35d">
540 {{{2.211416482925415, 1.6971458196640015}, {1.2938009262874868, 2.82736192888300 05}, {0.64690048634813535, 3.5876019453925414}, {0, 1}}}
541 {{{2.211416482925415, 1.6971458196640015}, {1.0082962512969971, 1.99792587757110 6}}}
542 {{{2.211416482925415, 1.6971458196640015}, {5, 1}}}
543 </div>
544
545 <div id="skpnational_com_au81">
546 {{{1110.7071533203125, 817.29290771484375}, {1110.9998779296875, 817.58587646484 375}, {1111, 818}}}
547 {{{1110.7071533203125, 817.29290771484375}, {1110.526180767307778, 817.111921450 8684081}, {1110.276144384999725, 817}, {1110, 817}}}
548 {{{1110.7071533203125, 817.29290771484375}, {1110.888097894721341, 817.473866007 1997174}, {1111, 817.7238677851287321}, {1111, 818}}}
549 {{{1110.7071533203125, 817.29290771484375}, {1110.4140625, 817.0001220703125}, { 1110, 817}}}
550 </div>
551
552 <div id="cubicOp85d">
553 {{{1.0648664236068726, 2.9606373310089111}, {0.80208036362614099, 2.793648418027 2374}, {0.49170560730211144, 2.2292640182552783}, {0, 1}}}
554 {{{1.0648664236068726, 2.9606373310089111}, {0.6261905430171294, 3.2248910899179 175}, {0.38860045191888659, 2.9430022595944321}, {0, 1}}}
555 {{{1.0648664236068726, 2.9606373310089111}, {1.4282355765013004, 3.1915423487916 69}, {1.7006143409852195, 2.6626209548338378}, {2.2355968952178955, 2.0810616016 387939}}}
556 {{{1.0648664236068726, 2.9606373310089111}, {1.3437142856601656, 2.7926622975690 494}, {1.7038131304059798, 2.4040122748806132}, {2.2355968952178955, 2.081061601 6387939}}}
557 </div>
558
559 <div id="testQuads22">
560 {{{0, 0}, {1.20000004768371582, 0.8000000119209289551}}}
561 {{{0, 0}, {2, 0}}}
562 {{{0, 0}, {0, 1}, {3, 2}}}
563 {{{0, 0}, {1, 1}}}
564 </div>
565
566 <div id="cubicOp59d">
567 {{{4, 1}, {4, 0.37698365082686142}, {4.3881493046286568, 2.4710128800004547}, {3 .4716842174530029, 2.9292664527893066}}}
568 {{{4, 1}, {0, 1}}}
569 </div>
570
571 <div id="findFirst1">
572 {{{2.5767931938171387, 0.88524383306503296}, {2.4235948002142855, 0.886925014903 84834}, {2.2328897699358898, 0.92237007668803672}, {2, 1}}}
573 {{{2.5767931938171387, 0.88524383306503296}, {1.6008643534817426, 1.160901590746 3158}, {1.1200849961943122, 1.8138386966264941}, {0.75343161821365356, 2.7170474 529266357}}}
574 {{{2.5767931938171387, 0.88524383306503296}, {4.0492746201577932, 0.869084988486 19054}, {2.0567957107800288, 3.9721309710522448}, {0.75343161821365356, 2.717047 4529266357}}}
575 {{{2.5767931938171387, 0.88524383306503296}, {3.3470152174198557, 0.667689368878 79282}, {4.4256496583071421, 0.68512993166142844}, {6, 1}}}
576 {{{2.57679319, 0.885243833}, {5.15358639, 0.885243833}}}
577 </div>
578
579 <div id="testQuads54">
580 {{1.000,1.000}, {1.500,0.500}, {1.500,0.250}}
581 {{1.000,1.000}, {1.667,0.333}}
582 {{1.000,1.000}, {2.000,3.000}}
583 </div>
584
585 <div id="testQuads45">
586 {{{3, 3}, {3, 2.7999999523162842}, {2.880000114440918, 2.6400001049041748}}}
587 {{{3, 3}, {3, 2}, {2, 0}}}
588 {{{3, 3}, {2, 0}}}
589 {{{3, 3}, {2.880000114440918, 2.6400001049041748}}}
590 </div>
591
592 <div id="testQuads59">
593 {{{3, 1}, {3, 0}}}
594 {{{3, 1}, {2.6666667461395264, 0.66666668653488159}}}
595 {{{3, 1}, {2.8000003099441542, 1.1999996900558463}, {2.6800000667572021, 1.36000 00143051147}}}
596 {{{3, 1}, {2.6666667461395264, 1.3333333730697632}}}
597 </div>
598
599 <div id="skpcarrot_is24">
600 {{{1020.08099, 672.161987}, {1020.08051, 651.450988}, {1011.68576, 632.700988}, {998.113511, 619.128738}}}
601 {{{1020.08099, 672.161987}, {1019.27607, 640.291301}, {998.113511, 619.128738}}}
602 {{{1020, 672}, {1020, 651.289307}, {1012.67767, 633.611633}, {998.03302, 618.966 98}}}
603 {{{1020, 672}, {1020, 640.93396}, {998.03302, 618.96698}}}
604 </div>
605
606 <div id="skpcarrot_is24a">
607 {{{1020, 672}, {1020, 651.289307}, {1012.67767, 633.611633}, {998.03302, 618.966 98}}}
608 {{{1020, 672}, {1020, 640.93396}, {998.03302, 618.96698}}}
609 </div>
610
611 <div id="skpcarrot_is24b">
612 {{{1020.08099, 672.161987}, {1020.08051, 651.450988}, {1011.68576, 632.700988}, {998.113511, 619.128738}}}
613 {{{1020.08099, 672.161987}, {1019.27607, 640.291301}, {998.113511, 619.128738}}}
614 </div>
615
616 <div id="skpcarrot_is24c">
617 {{{{1020.08099,672.161987}, {1020.08002,630.73999}, {986.502014,597.161987}, {94 5.080994,597.161987}}},
618 {{{1020,672}, {1020,640.93396}, {998.03302,618.96698}}},
619 </div>
620
621 <div id="skpcarrot_is24d">
622 {{{1020.08099, 672.161987}, {1019.27607, 640.291301}, {998.113511, 619.128738}}}
623 {{{1020, 672}, {1020, 640.93396}, {998.03302, 618.96698}}}
624 </div>
625
626 <div id="skpcarrot_is24e">
627 {{{{1020.08099,672.161987}, {1020.08002,630.73999}, {986.502014,597.161987}, {94 5.080994,597.161987}}},
628 {{{1020.08099, 672.161987}, {1019.27607, 640.291301}, {998.113511, 619.128738}}}
629 {{{1020, 672}, {1020, 640.93396}, {998.03302, 618.96698}}}
630 </div>
631
632 <div id="slop1">
633 {{{-378.22698974609375, -987.8935546875}, {-47.53326416015625, 482.7139892578125 }, {-626.4708251953125, -338.62969970703125}, {-847.94854736328125, -861.4223022 4609375}}}
634 {{{-378.61790442466736, -987.49146723747253}, {-282.51787429804051, -556.3906528 6764685}, {-278.55106873374694, -364.17984985308294}}}
635 {{{-305.5273847156202, -615.99979442705023}, {-305.04071954345704, -612.87932617 187505}}}
636 </div>
637
638 qT=0.98917687 cT=0.788725084 dist=312.188493 cross=-40759.4852
639 <div id="slop2">
640 {{{79.5137939,-249.867188}, {260.778931,-561.349854}, {343.375977,-472.657898}, {610.251465,97.8208008}}}
641 {{{312.993284,-406.178762}, {418.053808,-326.9483}, {610.036929,97.2408578}}}
642 {{{463.107827,-200.015424}, {602.008878,79.5702581}}}
643 </div>
644
645 qT=0.0192863061 cT=0.241285225 dist=652.007881 cross=528435.665
646 <div id="slop3">
647 {{{-895.015015,-523.545288}, {223.166992,-999.644531}, {615.428711,-767.162109}, {605.479736,480.355713}}}
648 {{{-894.932414,-523.605499}, {-66.4040558,-889.938889}, {278.515212,-667.684158} }}
649 {{{-207.851881,-740.109296}, {-831.819002,-550.955104}}}
650 </div>
651
652 qT=0.0245724525 cT=0.231316637 dist=407.103004 cross=-46286.5686
653 <div id="slop4">
654 {{{876.492798,-849.716187}, {519.430908,-288.374207}, {187.2771,314.324341}, {33 5.363403,533.086548}}}
655 {{{876.323133,-849.535824}, {594.868958,-415.229224}, {416.667192,-30.0277669}}}
656 {{{638.343827,-458.798274}, {849.023879,-807.14691}}}
657 </div>
658
659 qT=0.000316393778 cT=0.248252634 dist=489.678412 cross=-57352.7653
660 <div id="slop5">
661 {{{876.492798,-849.716187}, {519.430908,-288.374207}, {187.2771,314.324341}, {33 5.363403,533.086548}}}
662 {{{876.147506,-849.184429}, {593.963775,-414.437342}, {416.842819,-30.3791618}}}
663 {{{622.139843,-430.512844}, {876.135915,-849.166571}}}
664 </div>
665
666 qT=0.989562776 cT=0.760518485 dist=211.50589 cross=134901.42
667 <div id="slop6">
668 {{{876.492798,-849.716187}, {519.430908,-288.374207}, {187.2771,314.324341}, {33 5.363403,533.086548}}}
669 {{{416.141554,-30.4534414}, {237.846068,356.664216}, {335.719378,533.692585}}}
670 {{{305.345404,315.701195}, {331.440368,525.591152}}}
671 </div>
672
673 qT=0.0978245708 cT=0.397465904 dist=959.737748 cross=158093.403
674 <div id="slop7">
675 {{{895.800171,-222.213013}, {-528.78833,526.47644}, {-967.299927,776.05603}, {-6 11.228027,319.934814}}}
676 {{{629.666617,-82.159942}, {-661.943328,620.81113}, {-723.44072,537.121833}}}
677 {{{-347.560585,421.003177}, {507.062151,-15.707855}}}
678 </div>
679
680 qT=0.169803964 cT=0.389326872 dist=658.039939 cross=107865.424
681 <div id="slop8">
682 {{{895.800171,-222.213013}, {-528.78833,526.47644}, {-967.299927,776.05603}, {-6 11.228027,319.934814}}}
683 {{{629.536617,-81.7990275}, {-662.457623,620.485316}, {-723.31072,536.760918}}}
684 {{{-330.996421,413.091598}, {257.080063,117.824582}}}
685 </div>
686
687 qT=0.0863836955 cT=0.387901231 dist=986.24777 cross=157348.113
688 <div id="slop9">
689 {{{895.800171,-222.213013}, {-528.78833,526.47644}, {-967.299927,776.05603}, {-6 11.228027,319.934814}}}
690 {{{629.248316,-81.8984216}, {-662.339696,620.351182}, {-723.022419,536.860313}}}
691 {{{-328.058099,411.68229}, {549.399512,-38.5985162}}}
692 </div>
693
694 qT=0.175359403 cT=0.390420692 dist=640.051938 cross=105488.084
695 <div id="slop10">
696 {{{895.800171,-222.213013}, {-528.78833,526.47644}, {-967.299927,776.05603}, {-6 11.228027,319.934814}}}
697 {{{629.760605,-81.9577046}, {-661.301606,620.029216}, {-723.534707,536.919596}}}
698 {{{-333.243516,414.168229}, {238.961251,127.37878}}}
699 </div>
700
701 qT=0.0986412358 cT=0.382365595 dist=921.951857 cross=145651.761
702 <div id="slop11">
703 {{{895.800171,-222.213013}, {-528.78833,526.47644}, {-967.299927,776.05603}, {-6 11.228027,319.934814}}}
704 {{{629.919588,-82.1841825}, {-662.488256,620.04494}, {-723.693691,537.146073}}}
705 {{{-316.541641,406.142013}, {504.067361,-14.0913644}}}
706 </div>
707
708 qT=0.146746849 cT=0.391456086 dist=750.006927 cross=123679.094
709 <div id="slop12">
710 {{{895.800171,-222.213013}, {-528.78833,526.47644}, {-967.299927,776.05603}, {-6 11.228027,319.934814}}}
711 {{{629.712675,-82.0366321}, {-661.487948,620.191832}, {-723.486777,536.998523}}}
712 {{{-335.364605,415.183549}, {334.079508,77.0194322}}}
713 </div>
714
715 qT=0.00196158131 cT=0.20357489 dist=466.080185 cross=241741.95
716 <div id="slop13">
717 {{{-627.671509,-359.277039}, {222.414551,-791.598328}, {390.603027,-581.903687}, {-21.7962036,560.33728}}}
718 {{{-627.675958,-359.282959}, {-52.012535,-659.029798}, {116.967835,-524.756101}} }
719 {{{-192.427848,-541.033993}, {-622.696937,-361.871356}}}
720 </div>
721
722 qT=0.948725598 cT=0.744200608 dist=699.694313 cross=179509.878
723 <div id="slop14">
724 {{{-362.331848,427.292603}, {634.418701,-661.946533}, {438.438599,-626.147278}, {-893.060425,214.243408}}}
725 {{{259.978301,-393.549091}, {181.692599,-474.452437}, {-892.389834,213.689096}}}
726 {{{-95.1310032,-267.365579}, {-696.89984,89.6307768}}}
727 </div>
728
729 qT=0.971677129 cT=0.755306143 dist=771.998962 cross=189468.817
730 <div id="slop15">
731 {{{-362.331848,427.292603}, {634.418701,-661.946533}, {438.438599,-626.147278}, {-893.060425,214.243408}}}
732 {{{259.662278,-393.355886}, {181.612843,-473.935297}, {-892.073812,213.495892}}}
733 {{{-120.438346,-253.451518}, {-782.461182,143.673352}}}
734 </div>
735
736 qT=0.571797795 cT=0.773951562 dist=495.560209 cross=221091.889
737 <div id="slop16">
738 {{{447.192383,-883.210205}, {359.794678,-987.765808}, {755.427612,-754.328735}, {963.672119,746.545776}}}
739 {{{635.795655,-580.726915}, {810.704547,-228.491534}, {963.345162,745.921688}}}
740 {{{801.470356,-87.7105789}, {646.551495,-558.433498}}}
741 </div>
742
743 qT=0.579236693 cT=0.782683167 dist=281.750564 cross=65125.1655
744 <div id="slop17">
745 {{{-931.259155,-883.589966}, {-485.682007,-615.793701}, {-68.5913696,-928.695923 }, {431.499268,-810.584778}}}
746 {{{-177.087049,-804.265618}, {110.452267,-866.525236}, {430.718323,-810.414444}} }
747 {{{116.080189,-836.904702}, {-164.080748,-807.017753}}}
748 </div>
749
750 qT=0.0102075348 cT=0.2448024 dist=855.408492 cross=463614.179
751 <div id="slop18">
752 {{{-867.011292,844.139282}, {-136.156799,-281.244263}, {583.27771,-926.761414}, {998.710205,6.19244385}}}
753 {{{-866.7221,843.65105}, {-308.756317,-34.8353977}, {183.843514,-346.222431}}}
754 {{{-336.612013,120.039627}, {-844.283739,808.5112}}}
755 </div>
756
757 qT=0.473968306 cT=0.266805943 dist=567.851844 cross=-461509.104
758 <div id="slop19">
759 {{{-867.011292,844.139282}, {-136.156799,-281.244263}, {583.27771,-926.761414}, {998.710205,6.19244385}}}
760 {{{-867.218781,844.133445}, {-310.496711,-35.0458119}, {184.340195,-346.704825}} }
761 {{{-290.018097,66.7065093}, {132.536746,-312.639141}}}
762 </div>
763
764 qT=0.0232589401 cT=0.241085469 dist=789.989464 cross=428119.544
765 <div id="slop20">
766 {{{-867.011292,844.139282}, {-136.156799,-281.244263}, {583.27771,-926.761414}, {998.710205,6.19244385}}}
767 {{{-866.942271,843.928587}, {-309.178151,-34.0018497}, {184.063685,-346.499968}} }
768 {{{-344.507162,129.265381}, {-815.30119,763.644082}}}
769 </div>
770
771 <div id="skpnamecheap_405">
772 {{{141.008835f, 837.9646f}, {141.235291f, 1109.05884f}}}
773 {{{141, 842}, {141.14502f, 1000}}}
774 {{{141.14502f, 1000}, {140, 1000}}}
775 </div>
776
777 <div id="skpwww_dealnews_com_315">
778 {{{969.87066650390625, 4279.810546875}, {967.7166748046875, 4260}}}
779 {{{969.87066650390625, 4279.810546875}, {969.866972698829386, 4279.8092338892847 69}, {969.88751220703125, 4279.81640625}}}
780 {{{969.87066650390625, 4279.810546875}, {970, 4281}}}
781 {{{969.87066650390625, 4279.810546875}, {968.9217161046863112, 4279.473236623693 992}, {968.17156982421875, 4278.53564453125}}}
782 {{{969.8706626470486754, 4279.810469740555163}, {969.8790796016525064, 4279.8134 61598796493}, {969.88751220703125, 4279.81640625}}}
783 </div>
784
785 <div id="skpwww_dealnews_com_315_a">
786 {{{969.8706626470486754, 4279.810469740555163}, {969.8790796016525064, 4279.8134 61598796493}, {969.88751220703125, 4279.81640625}}}
787 {{{969.87066650390625, 4279.810546875}, {969.8790834585100811, 4279.813538733241 33}}}
788 {{{969.88751220703125, 4279.81640625}, {969.8790796016525064, 4279.8134615987964 93}}}
789 </div>
790
791 <div id="testQuads60">
792 {{{2, 2}, {1.977731304590550021, 1.97773134708404541}, {1.95645439624786377, 1.9 5546269416809082}}}
793 {{{2, 2}, {2, 3}}}
794 {{{2, 2}, {2, 1.960000038146972656}}}
795 {{{2, 2}, {1.955341815948486328, 1.955341815948486328}}}
796 </div>
797
798 <div id="testQuads60_a">
799 {{{2, 0}, {1, 1}, {2, 2}}}
800 {{{2, 2}, {0, 0}}}
801 </div>
802
803 <div id="testQuads60_b">
804 {{2,1}, {0,2}, {3,2}},
805 {{3,2}, {2,3}},
806 {{2,3}, {2,1}},
807 {{0,0}, {2,0}},
808 {{2,0}, {1,1}, {2,2}},
809 {{2,2}, {0,0}},
810 </div>
811
812 <div id="skpelpais_com_18">
813 {{183,8507}, {552,8506.99023}},
814 {{552,8506.99023}, {552,8508}},
815 {{552,8508}, {183,8508}},
816 {{183,8508}, {183,8507}},
817 op intersect
818 {{183,8508}, {183,8506.99023}},
819 {{183,8506.99023}, {552,8507}},
820 {{552,8507}, {552,8508}},
821 </div>
822
823 <div id="skpwww_cityads_ru_249">
824 {{{1000, 10.4003992f}, {1000, 13.3527431f}}}
825 {{{1000, 13.3527431f}, {999.917603f, 13.2607508f}, {999.82843f, 13.1715727f}}}
826 {{{1000, 13}, {999.969971f, 37.0299988f}}}
827 </div>
828
829 <div id="skpwww_maturesupertube_com_21">
830 {{{{3.87867975f, 11831.8789f}, {4.7573595f, 11831}, {6, 11831}}},
831 {{{2, 11830}, {4.5f, 11832.5f}}}},
832 </div>
833
834 <div id="loop1">
835 {{1, 4, 2, 6, 0, 5, 4.5f, 4.33333302f
836 {{2, 6, 0, 5, 4.5f, 4.33333302f, 1, 4
837 {{{3, 5}, {2.33333325f, 4.33333349f}, {3.83333325f, 3.83333349f}, {2, 4}}}
838 {{{2, 4}, {3, 5}, {2.33333325f, 4.33333349f}, {3.83333325f, 3.83333349f}}}
839 </div>
840
841 <div id="serp1">
842 {{{0.55431359440952721, 2.1086271888190544}, {0.1588954256872922, 2.307831598814 1811}, {0.57446808656344528, 2.1489361731268914}, {0, 1}}}
843 {{{0.55431359440952721, 2.1086271888190544}, {0.1588954256872922, 2.307831598814 1811}, {0.57446808656344528, 2.1489361731268914}, {0, 1}}}
844 </div>
845 <div id="serp2">
846 {{{4.0946656649135988, 3.283996994740797}, {4.1983471074380168, 2.10743801652892 59}, {4.5454545454545459, 1.3636363636363635}, {4, 3}}}
847 {{{4.0946656649135988, 3.283996994740797}, {4.1983471074380168, 2.10743801652892 59}, {4.5454545454545459, 1.3636363636363635}, {4, 3}}}
848 </div>
849 <div id="serp3">
850 {{{2.2015477442471254, 1.1371488033013577}, {2.3167674423028526, 0.6832325576971 4741}, {2.4076432497431028, 0.59235675025689716}, {2, 1}}}
851 {{{2.2015477442471254, 1.1371488033013577}, {2.3167674423028526, 0.6832325576971 4741}, {2.4076432497431028, 0.59235675025689716}, {2, 1}}}
852 </div>
853
854 <div id="skpwww_seopack_blogspot_com_2153">
855 {{{924, 245.472672f}, {1143, 247}}}
856 {{{1000, 246}, {927.340759f, 245.505722f}}}
857 {{{999.892212f, 246}, {927.340759f, 245.505722f}}}
858 </div>
859
860 <div id="self1">
861 {{{2, 3}, {0, 4}, {3, 2}, {5, 3}}}
862 {{{2, 3}, {0, 4}, {3, 2}, {5, 3}}}
863 </div>
864
865 <div id="skpwww_pindosiya_com_99">
866 {{{901.0869140625, 547}, {899, 556}}}
867 {{{900.0235595703125, 551.60284423828125}, {900.06072998046875, 551.297058105468 75}, {900.15655517578125, 551.0157470703125}}}
868 </div>
869
870 <div id="cubicLineMiss1">
871 {{{-634.60540771484375, -481.262939453125}, {266.2696533203125, -752.70867919921 875}, {-751.8370361328125, -317.37921142578125}, {-969.7427978515625, 824.725585 9375}}}
872 {{{-287.9506133720805678, -557.1376476615772617}, {-285.9506133720805678, -557.1 376476615772617}}}
873 </div>
874
875 <div id="cubicLineMiss2">
876 {{{-818.4456787109375, 248.218017578125}, {944.18505859375, -252.2330322265625}, {957.3946533203125, -45.43280029296875}, {-591.766357421875, 868.6187744140625} }}
877 {{{435.1963493079119871, -16.42683763243891093}, {437.1963493079119871, -16.4268 3763243891093}}}
878 </div>
879
880 <div id="cubicLineMiss3">
881 {{{-818.4456787109375, 248.218017578125}, {944.18505859375, -252.2330322265625}, {957.3946533203125, -45.43280029296875}, {-591.766357421875, 868.6187744140625} }}
882 {{{397.5007682490800676, -17.35020084021140008}, {399.5007682490800676, -17.3502 0084021140008}}}
883 </div>
884
885 <div id="cubicLineMiss4">
886 {{{-652.660888671875, -384.6475830078125}, {-551.7723388671875, -925.50256347656 25}, {-321.06658935546875, -813.10345458984375}, {142.6982421875, -47.4503173828 125}}}
887 {{{-478.4372049758064236, -717.868282575075682}, {-476.4372049758064236, -717.86 8282575075682}}}
888 </div>
889
890 <div id="cubicLineErr1">
891 {{{-954.4322509765625, 827.2216796875}, {-420.24017333984375, -7.80560302734375} , {799.134765625, -971.4295654296875}, {-556.23486328125, 344.400146484375}}}
892
893 {{{58.57411390280688579, -302.8879316712078662}, {60.57411390280688579, -302.887 9316712078662}}}
894 </div>
895
896 <div id="cubicLineErr2">
897 {{{-634.60540771484375, -481.262939453125}, {266.2696533203125, -752.70867919921 875}, {-751.8370361328125, -317.37921142578125}, {-969.7427978515625, 824.725585 9375}}}
898 {{{-287.95061337208057, -557.13764766157726}, {-285.95061337208057, -557.1376476 6157726}}}
899 {{{-308.65463091760211, -549.4520029924679} -308.65463091760211, -569.4520029924 679
900 </div>
901
902 <div id="skpwww_educationalcraft_com_4">
903 {{{974.91998291015625, 1481.7769775390625}, {974.91998291015625, 1481.7760009765 625}, {977.3189697265625, 1484.6190185546875}, {975.10699462890625, 1486.9780273 4375}}}
904 {{fX=974.91998291015625 fY=1481.7769775390625 }, {fX=974.92071342468262 fY=1481. 7972941398621 }} }
905 </div>
906
907 <div id="skpwww_educationalcraft_com_4a">
908 {{{962.10699462890625, 1485.654052734375}, {962.10699462890625, 1485.65405273437 5}, {960.58502197265625, 1483.595947265625}, {957.53900146484375, 1482.097045898 4375}}}
909 {{{963.21502685546875, 1486.6700439453125}, {962.7449951171875, 1486.67004394531 25}, {962.10699462890625, 1485.654052734375}, {962.10699462890625, 1485.65405273 4375}}}
910 </div>
911
912 <div id="skpwww_educationalcraft_com_4b">
913 {{{980.9000244140625, 1474.3280029296875}, {980.9000244140625, 1474.328002929687 5}, {978.89300537109375, 1471.95703125}, {981.791015625, 1469.487060546875}}}
914 {{{981.791015625, 1469.487060546875}, {981.791015625, 1469.4859619140625}, {983. 3580322265625, 1472.72900390625}, {980.9000244140625, 1474.3280029296875}}}
915 </div>
916
917 <div id="skpwww_aceinfographics_com_106">
918 {{{168, 29.6722088f}, {166, 29.6773338f}}}
919 {{{166.878677f, 29.6750813f}, {167.388f, 29.6763878f}, {168.019989f, 29.6769352f }}}
920 </div>
921
922 <div id="skpwww_tcmevents_org_13">
923 {{{465.84668f, 547.288391f}, {467.274506f, 552.852356f}, {468.506836f, 560.71856 7f}}}
924 {{{468.506836f, 560.718567f}, {467.336121f, 553.24585f}, {465.951904f, 547.96014 4f}}
925 </div>
926
927 <div id="skpwww_kitcheninspirations_wordpress_com_66">
928 {{{60.8333359f, 27820.498f}, {47.1666679f, 27820.5f}}}
929 {{{60.8333359f, 27820.668f}, {60.8333359f, 27820.498f}}}
930 {{{47.1666679f, 27820.498f}, {60.8333359f, 27820.5f}}}
931 {{{60.8333359f, 27820.5f}, {60.8333359f, 27820.668f}}}
932 </div>
933
934 <div id="skpwww_galaxystwo_com_4">
935 {{{10105, 2510}, {10123, 2509.98999f}}}
936 {{{10105, 2509.98999f}, {10123, 2510}}}
937 </div>
938
939 <div id="skpwww_wartepop_blogspot_com_br_6">
940 {{{124.666672f, 152.333344f}, {125.909309f, 152.333344f}, {126.787994f, 153.3096 62f}}}
941 {{fX=124.66666412353516 fY=152.33334350585937 }, {fX=126.78799438476562 fY=153.3 0966186523437 }} }
942 {{fX=124.66666412353516 fY=152.33334350585937 }, {fX=127.02368927001953 fY=153.3 0966186523437 }} }
943 </div>
944
945 <div id="skpwww_wartepop_blogspot_com_br_6a">
946 {{{124.666672f, 152.333344f}, {125.909309f, 152.333344f}, {126.787994f, 153.3096 62f}}}
947 {{fX=124.66667175292969 fY=152.33334350585937 }, {fX=126.78799438476562 fY=153.3 0966186523437 }} }
948 {{fX=124.66667175292969 fY=152.33334350585937 }, {fX=127.02368927001953 fY=153.3 0966186523437 }} }
949 </div>
950
951 <div id="skpcarrot_is24x">
952 {{{1020.08099, 672.16198699999995}, {1020.08002, 630.73999000000003}, {986.50201 400000003, 597.16198699999995}, {945.08099400000003, 597.16198699999995}}}
953 {{{1020, 672}, {1020, 640.93395999999996}, {998.03301999999996, 618.966980000000 04}}}
954 </div>
955
956 <div id="skpwww_9to5mac_com_64">
957 {{{{365.848175,5081.15186}, {368,5103}}},
958 {{{367.967712,5102.61084}, {368.278717,5105.71045}}}},
959 </div>
960
961 <div id="issue2753">
962 {{50.6,117.001}, {50.6,117.001}, {164.601,85.2}, {188.201,117.601}},
963 {{188.201,117.601}, {188.201,117.601}, {174.801,93}, {39,124.001}},
964 computed quadratics set
965 {{50.6,117.001}, {52.4926111,116.112083}, {81.0298889,109.956333}},
966 {{81.0298889,109.956333}, {109.567167,103.800583}, {142.037778,103.045}},
967 {{142.037778,103.045}, {174.508389,102.289417}, {188.201,117.601}},
968 computed quadratics set
969 {{188.201,117.601}, {189.210269,116.85838}, {179.697259,112.371148}},
970 {{179.697259,112.371148}, {170.18425,107.883917}, {138.037741,108.563519}},
971 {{138.037741,108.563519}, {105.891231,109.24312}, {39,124.001}},
972 </div>
973
974 <div id="battle6001">
975 {{{0.111722f, -59.999897f}, {0.0895366594f, -59.999939f}, {0.0673542097f, -59.99 99695f}, {0.0451717526f, -59.9999847f}}}
976 {{{0.0451734141f, -59.9999847f}, {0.0438041016f, -59.9999886f}, {0.0424379632f, -59.9999886f}, {0.0410718247f, -59.9999886f}}}
977 </div>
978
979 <div id="fuzz763_3084">
980 {{{38.6568527f, 27.3431454f}, {41, 29.6862907f}, {41, 33}}}
981 {{{39.131218f, 27.8554096f}, {41, 30.0406685f}, {41, 33}}}
982 {{{44.6041069f, 27.9369583f}, {41.8078537f, 28.9057903f}, {39.131218f, 27.855409 6f}}}
983 </div>
984
985 <div id="fuzz763_378">
986 {{{-52.8062439,14.1493912}, {-53.6638947,10.948595}, {-52.0070419,8.07883835}}
987 {{-52.8054848,14.1522331}, {-53.6633072,10.9514809}, {-52.0066071,8.08163643}}
988 </div>
989
990 <div id="fuzz763_378d">
991 {{{-37.351398500000002, 10.0082998}, {-36.493801099999999, 13.209099800000001}, {-38.150600400000002, 16.0788002}}
992 {{-37.350898700000002, 10.010299699999999}, {-36.493099200000003, 13.2110004}, { -38.149799299999998, 16.080900199999999}}}
993 {{-37.320497331221297, 10.126736679362402}, {-37.320543141534543 fY=10.126556206 903867 }}
994 {{-37.514829818825397, 14.722977321623326}, {=-37.514249241879924 fY=14.72546489 2492159 }}
995 </div>
996
997 <div id="fuzz763_6411089">
998 {{38.5810318, 38.7318115}, {38.5877266, 38.7252655}, {38.5931816, 38.7199173}}
999 {{38.5931816, 38.7199173}, {38.5880508, 38.7249527}, {38.5810318, 38.7318115}}
1000 </div> 209 </div>
1001 210
1002 </div> 211 </div>
1003 212
1004 <script type="text/javascript"> 213 <script type="text/javascript">
1005 214
1006 var testDivs = [ 215 var testDivs = [
1007 fuzz763_6411089, 216 sect1,
1008 fuzz763_378d, 217 sect2,
1009 fuzz763_378, 218 sect3,
1010 fuzz763_3084, 219 sect4,
1011 battle6001, 220 sect5,
1012 issue2753, 221 sect6,
1013 skpwww_9to5mac_com_64, 222 sect7,
1014 skpcarrot_is24x, 223 sect8,
1015 skpwww_wartepop_blogspot_com_br_6, 224 sect9,
1016 skpwww_wartepop_blogspot_com_br_6a, 225 sect10,
1017 skpwww_galaxystwo_com_4, 226 sect11,
1018 skpwww_kitcheninspirations_wordpress_com_66, 227 sect12,
1019 skpwww_tcmevents_org_13, 228 sect13,
1020 skpwww_aceinfographics_com_106, 229 sect14,
1021 skpwww_educationalcraft_com_4b, 230 sect15,
1022 skpwww_educationalcraft_com_4a, 231 sect16,
1023 skpwww_educationalcraft_com_4, 232 sect17,
1024 cubicLineErr2, 233 sect18,
1025 cubicLineErr1, 234 sect19,
1026 cubicLineMiss1, 235 sect20,
1027 cubicLineMiss2, 236 sect21,
1028 cubicLineMiss3, 237 sect22,
1029 cubicLineMiss4, 238 sect23,
1030 skpwww_pindosiya_com_99, 239 sect24,
1031 self1, 240 sect25,
1032 skpwww_seopack_blogspot_com_2153, 241 sect26,
1033 serp1, 242 sect27,
1034 serp2, 243 sect28,
1035 serp3, 244 sect29,
1036 loop1, 245 sect30,
1037 skpwww_maturesupertube_com_21, 246 sect31,
1038 skpwww_cityads_ru_249, 247 sect32,
1039 skpelpais_com_18, 248 sect33,
1040 testQuads60_b, 249 sect34,
1041 testQuads60_a, 250 sect35,
1042 testQuads60, 251 sect36,
1043 skpwww_dealnews_com_315_a, 252
1044 skpwww_dealnews_com_315, 253
1045 skpnamecheap_405,
1046 slop1,
1047 slop2,
1048 slop3,
1049 slop4,
1050 slop5,
1051 slop6,
1052 slop7,
1053 slop8,
1054 slop9,
1055 slop10,
1056 slop11,
1057 slop12,
1058 slop13,
1059 slop14,
1060 slop15,
1061 slop16,
1062 slop17,
1063 slop18,
1064 slop19,
1065 slop20,
1066 skpcarrot_is24e,
1067 skpcarrot_is24d,
1068 skpcarrot_is24c,
1069 skpcarrot_is24b,
1070 skpcarrot_is24a,
1071 skpcarrot_is24,
1072 testQuads59,
1073 testQuads45,
1074 testQuads54,
1075 findFirst1,
1076 cubicOp59d,
1077 testQuads22,
1078 cubicOp85d,
1079 cubicOp104,
1080 skpnational_com_au81,
1081 cubicOp35d,
1082 testQuad23,
1083 testQuad22,
1084 testQuad21,
1085 testQuad15,
1086 testQuadratic56,
1087 xop1i,
1088 xOp2i,
1089 xop1u,
1090 skpwww_joomla_org_23,
1091 cubicOp109,
1092 cubicOp106,
1093 cubicOp105,
1094 carpetplanet1,
1095 eldorado1,
1096 cubicOp25i,
1097 cubicOp7d,
1098 simplifyQuadratic27,
1099 simplifyQuadratic56a,
1100 simplifyQuadratic56,
1101 quadratic58again,
1102 simplifyQuadratic58a,
1103 simplifyQuadratic58,
1104 simplifyQuadratic36,
1105 quad89987,
1106 quad8741,
1107 quad8b,
1108 quad8a,
1109 quad208,
1110 quad67242,
1111 quad37226,
1112 quad35237,
1113 quad108,
1114 quad212,
1115 quad3160,
1116 quad640,
1117 quad206,
1118 quad136,
1119 quad113,
1120 quad999,
1121 quad0,
1122 quad179,
1123 quad4a,
1124 quad94,
1125 quad77,
1126 quad22a,
1127 quad14a,
1128 quad809,
1129 quad653,
1130 quad584,
1131 quad413,
1132 quad379,
1133 quad159,
1134 quad232,
1135 quad40,
1136 quad39,
1137 quad38,
1138 quad37,
1139 quad36,
1140 quad35,
1141 quad34,
1142 quad33,
1143 quad32,
1144 quad31,
1145 quad30,
1146 quad29,
1147 quad28,
1148 quad27,
1149 quad26,
1150 quad25,
1151 quad24,
1152 quad23,
1153 quad22,
1154 quad21,
1155 quad20,
1156 quad19,
1157 quad18,
1158 quad17,
1159 quad16,
1160 quad15,
1161 quad14,
1162 quad13,
1163 quad12,
1164 quad11,
1165 cubic2,
1166 cubic1,
1167 quad1,
1168 quad2,
1169 quad3,
1170 quad4,
1171 quad5,
1172 quad6,
1173 quad7,
1174 quad8,
1175 quad9,
1176 quad10,
1177 ]; 254 ];
1178 255
256 var decimal_places = 3;
257
1179 var tests = []; 258 var tests = [];
1180 var testTitles = []; 259 var testTitles = [];
1181 var testIndex = 0; 260 var testIndex = 0;
1182 var ctx; 261 var ctx;
262
1183 var subscale = 1; 263 var subscale = 1;
1184 var xmin, xmax, ymin, ymax; 264 var xmin, xmax, ymin, ymax;
1185 var scale; 265 var scale;
1186 var initScale; 266 var initScale;
1187 var mouseX, mouseY; 267 var mouseX, mouseY;
1188 var mouseDown = false; 268 var mouseDown = false;
1189 var srcLeft, srcTop; 269 var srcLeft, srcTop;
1190 var screenWidth, screenHeight; 270 var screenWidth, screenHeight;
1191 var drawnPts; 271 var drawnPts;
1192 var curveT = 0; 272 var curveT = 0;
1193 273
1194 var lastX, lastY; 274 var lastX, lastY;
1195 var activeCurve = []; 275 var activeCurve = [];
1196 var activePt; 276 var activePt;
277 var ids = [];
1197 278
1198 var decimal_places = 3; 279 var focus_on_selection = 0;
1199
1200 var draw_t = false; 280 var draw_t = false;
1201 var draw_closest_t = false; 281 var draw_closest_t = false;
1202 var draw_cubic_red = false; 282 var draw_cubic_red = false;
1203 var draw_derivative = false; 283 var draw_derivative = false;
1204 var draw_endpoints = true; 284 var draw_endpoints = 2;
285 var draw_id = false;
1205 var draw_midpoint = 0; 286 var draw_midpoint = 0;
1206 var draw_mouse_xy = false; 287 var draw_mouse_xy = false;
1207 var draw_order = false; 288 var draw_order = false;
1208 var draw_point_xy = false; 289 var draw_point_xy = false;
1209 var draw_ray_intersect = false; 290 var draw_ray_intersect = false;
1210 var draw_quarterpoint = 0; 291 var draw_quarterpoint = 0;
1211 var draw_tangents = 1; 292 var draw_tangents = 1;
1212 var draw_sortpoint = 0; 293 var draw_sortpoint = 0;
1213 var retina_scale = !!window.devicePixelRatio; 294 var retina_scale = !!window.devicePixelRatio;
1214 295
1215 function parse(test, title) { 296 function parse(test, title) {
1216 var curveStrs = test.split("{{"); 297 var curveStrs = test.split("{{");
1217 var pattern = /-?\d+\.*\d*e?-?\d*/g; 298 var pattern = /-?\d+\.*\d*e?-?\d*/g;
1218 var curves = []; 299 var curves = [];
1219 for (var c in curveStrs) { 300 for (var c in curveStrs) {
1220 var curveStr = curveStrs[c]; 301 var curveStr = curveStrs[c];
302 var idPart = curveStr.split("id=");
303 var id = -1;
304 if (idPart.length == 2) {
305 id = parseInt(idPart[1]);
306 curveStr = idPart[0];
307 }
1221 var points = curveStr.match(pattern); 308 var points = curveStr.match(pattern);
1222 var pts = []; 309 var pts = [];
1223 for (var wd in points) { 310 for (var wd in points) {
1224 var num = parseFloat(points[wd]); 311 var num = parseFloat(points[wd]);
1225 if (isNaN(num)) continue; 312 if (isNaN(num)) continue;
1226 pts.push(num); 313 pts.push(num);
1227 } 314 }
1228 if (pts.length > 2) 315 if (pts.length > 2) {
1229 curves.push(pts); 316 curves.push(pts);
317 }
318 if (id >= 0) {
319 ids.push(id);
320 ids.push(pts);
321 }
1230 } 322 }
1231 if (curves.length >= 1) { 323 if (curves.length >= 1) {
1232 tests.push(curves); 324 tests.push(curves);
1233 testTitles.push(title); 325 testTitles.push(title);
1234 } 326 }
1235 } 327 }
1236 328
1237 function init(test) { 329 function init(test) {
1238 var canvas = document.getElementById('canvas'); 330 var canvas = document.getElementById('canvas');
1239 if (!canvas.getContext) return; 331 if (!canvas.getContext) return;
(...skipping 17 matching lines...) Expand all
1257 for (var curves in test) { 349 for (var curves in test) {
1258 var curve = test[curves]; 350 var curve = test[curves];
1259 var last = curve.length; 351 var last = curve.length;
1260 for (var idx = 0; idx < last; idx += 2) { 352 for (var idx = 0; idx < last; idx += 2) {
1261 xmin = Math.min(xmin, curve[idx]); 353 xmin = Math.min(xmin, curve[idx]);
1262 xmax = Math.max(xmax, curve[idx]); 354 xmax = Math.max(xmax, curve[idx]);
1263 ymin = Math.min(ymin, curve[idx + 1]); 355 ymin = Math.min(ymin, curve[idx + 1]);
1264 ymax = Math.max(ymax, curve[idx + 1]); 356 ymax = Math.max(ymax, curve[idx + 1]);
1265 } 357 }
1266 } 358 }
1267 xmin -= 1; 359 xmin -= Math.min(1, Math.max(xmax - xmin, ymax - ymin));
1268 var testW = xmax - xmin; 360 var testW = xmax - xmin;
1269 var testH = ymax - ymin; 361 var testH = ymax - ymin;
1270 subscale = 1; 362 subscale = 1;
1271 while (testW * subscale < 0.1 && testH * subscale < 0.1) { 363 while (testW * subscale < 0.1 && testH * subscale < 0.1) {
1272 subscale *= 10; 364 subscale *= 10;
1273 } 365 }
1274 while (testW * subscale > 10 && testH * subscale > 10) { 366 while (testW * subscale > 10 && testH * subscale > 10) {
1275 subscale /= 10; 367 subscale /= 10;
1276 } 368 }
1277 setScale(xmin, xmax, ymin, ymax); 369 setScale(xmin, xmax, ymin, ymax);
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after
1789 (curve[2] - srcLeft) * scale, (curve[3] - srcTop) * scale, 881 (curve[2] - srcLeft) * scale, (curve[3] - srcTop) * scale,
1790 (curve[4] - srcLeft) * scale, (curve[5] - srcTop) * scale, 882 (curve[4] - srcLeft) * scale, (curve[5] - srcTop) * scale,
1791 (curve[6] - srcLeft) * scale, (curve[7] - srcTop) * scale); 883 (curve[6] - srcLeft) * scale, (curve[7] - srcTop) * scale);
1792 } 884 }
1793 if (draw_cubic_red ? curve.length == 8 : firstInside == curves) { 885 if (draw_cubic_red ? curve.length == 8 : firstInside == curves) {
1794 ctx.strokeStyle = "rgba(255,0,0, 1)"; 886 ctx.strokeStyle = "rgba(255,0,0, 1)";
1795 } else { 887 } else {
1796 ctx.strokeStyle = "rgba(0,0,255, 1)"; 888 ctx.strokeStyle = "rgba(0,0,255, 1)";
1797 } 889 }
1798 ctx.stroke(); 890 ctx.stroke();
1799 if (draw_endpoints) { 891 if (draw_endpoints > 0) {
1800 drawPoint(curve[0], curve[1]); 892 drawPoint(curve[0], curve[1]);
1801 drawPoint(curve[2], curve[3]); 893 if (draw_endpoints > 1 || curve.length == 4) {
1802 if (curve.length > 4) drawPoint(curve[4], curve[5]); 894 drawPoint(curve[2], curve[3]);
1803 if (curve.length > 6) drawPoint(curve[6], curve[7]); 895 }
896 if (curve.length == 6 || (draw_endpoints > 1 && curve.length == 8)) {
897 drawPoint(curve[4], curve[5]);
898 }
899 if (curve.length == 8) drawPoint(curve[6], curve[7]);
1804 } 900 }
1805 if (draw_midpoint != 0) { 901 if (draw_midpoint != 0) {
1806 if ((curves == 0) == (midLeft == 0)) { 902 if ((curves == 0) == (midLeft == 0)) {
1807 ctx.strokeStyle = "rgba(0,180,127, 0.6)"; 903 ctx.strokeStyle = "rgba(0,180,127, 0.6)";
1808 } else { 904 } else {
1809 ctx.strokeStyle = "rgba(127,0,127, 0.6)"; 905 ctx.strokeStyle = "rgba(127,0,127, 0.6)";
1810 } 906 }
1811 var midX = x_at_t(curve, 0.5); 907 var midX = x_at_t(curve, 0.5);
1812 var midY = y_at_t(curve, 0.5); 908 var midY = y_at_t(curve, 0.5);
1813 drawPointSolid(midX, midY); 909 drawPointSolid(midX, midY);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1895 if (!approximately_zero(scale - initScale)) { 991 if (!approximately_zero(scale - initScale)) {
1896 ctx.font = "normal 20px Arial"; 992 ctx.font = "normal 20px Arial";
1897 ctx.fillStyle = "rgba(0,0,0, 0.3)"; 993 ctx.fillStyle = "rgba(0,0,0, 0.3)";
1898 ctx.textAlign = "right"; 994 ctx.textAlign = "right";
1899 ctx.fillText(scale.toFixed(decimal_places) + 'x', 995 ctx.fillText(scale.toFixed(decimal_places) + 'x',
1900 screenWidth - 10, screenHeight - 5); 996 screenWidth - 10, screenHeight - 5);
1901 } 997 }
1902 if (draw_t) { 998 if (draw_t) {
1903 drawPointAtT(curve); 999 drawPointAtT(curve);
1904 } 1000 }
1001 if (draw_id) {
1002 var id = -1;
1003 for (var i = 0; i < ids.length; i += 2) {
1004 if (ids[i + 1] == curve) {
1005 id = ids[i];
1006 break;
1007 }
1008 }
1009 if (id >= 0) {
1010 var px = x_at_t(curve, 0.5);
1011 var py = y_at_t(curve, 0.5);
1012 var _px = (px - srcLeft) * scale;
1013 var _py = (py - srcTop) * scale;
1014 ctx.beginPath();
1015 ctx.arc(_px, _py, 15, 0, Math.PI * 2, true);
1016 ctx.closePath();
1017 ctx.fillStyle = "white";
1018 ctx.fill();
1019 ctx.strokeStyle = "rgba(255,0,0, 1)";
1020 ctx.fillStyle = "rgba(255,0,0, 1)";
1021 ctx.stroke();
1022 ctx.font = "normal 16px Arial";
1023 ctx.textAlign = "center";
1024 ctx.fillText(id, _px, _py + 5);
1025 }
1026 }
1905 } 1027 }
1906 if (draw_t) { 1028 if (draw_t) {
1907 drawCurveTControl(); 1029 drawCurveTControl();
1908 } 1030 }
1909 } 1031 }
1910 1032
1911 function drawCurveTControl() { 1033 function drawCurveTControl() {
1912 ctx.lineWidth = 2; 1034 ctx.lineWidth = 2;
1913 ctx.strokeStyle = "rgba(0,0,0, 0.3)"; 1035 ctx.strokeStyle = "rgba(0,0,0, 0.3)";
1914 ctx.beginPath(); 1036 ctx.beginPath();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1947 } 1069 }
1948 return true; 1070 return true;
1949 } 1071 }
1950 1072
1951 function drawTop() { 1073 function drawTop() {
1952 init(tests[testIndex]); 1074 init(tests[testIndex]);
1953 redraw(); 1075 redraw();
1954 } 1076 }
1955 1077
1956 function redraw() { 1078 function redraw() {
1079 if (focus_on_selection > 0) {
1080 var focusXmin = focusYmin = Infinity;
1081 var focusXmax = focusYmax = -Infinity;
1082 var choice = 0;
1083 for (var curves in tests[testIndex]) {
1084 if (++choice != focus_on_selection) {
1085 continue;
1086 }
1087 var curve = tests[testIndex][curves];
1088 var last = curve.length;
1089 for (var idx = 0; idx < last; idx += 2) {
1090 focusXmin = Math.min(focusXmin, curve[idx]);
1091 focusXmax = Math.max(focusXmax, curve[idx]);
1092 focusYmin = Math.min(focusYmin, curve[idx + 1]);
1093 focusYmax = Math.max(focusYmax, curve[idx + 1]);
1094 }
1095 }
1096 focusXmin -= Math.min(1, Math.max(focusXmax - focusXmin, focusYmax - focusYmin));
1097 if (focusXmin < focusXmax && focusYmin < focusYmax) {
1098 setScale(focusXmin, focusXmax, focusYmin, focusYmax);
1099 }
1100 }
1957 ctx.beginPath(); 1101 ctx.beginPath();
1958 ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height); 1102 ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);
1959 ctx.fillStyle = "white"; 1103 ctx.fillStyle = "white";
1960 ctx.fill(); 1104 ctx.fill();
1961 draw(tests[testIndex], testTitles[testIndex]); 1105 draw(tests[testIndex], testTitles[testIndex]);
1962 } 1106 }
1963 1107
1964 function doKeyPress(evt) { 1108 function doKeyPress(evt) {
1965 var char = String.fromCharCode(evt.charCode); 1109 var char = String.fromCharCode(evt.charCode);
1110 var focusWasOn = false;
1966 switch (char) { 1111 switch (char) {
1967 case '0': 1112 case '0':
1968 case '1': 1113 case '1':
1969 case '2': 1114 case '2':
1970 case '3': 1115 case '3':
1971 case '4': 1116 case '4':
1972 case '5': 1117 case '5':
1973 case '6': 1118 case '6':
1974 case '7': 1119 case '7':
1975 case '8': 1120 case '8':
1976 case '9': 1121 case '9':
1977 decimal_places = char - '0'; 1122 decimal_places = char - '0';
1978 redraw(); 1123 redraw();
1979 break; 1124 break;
1980 case '-': 1125 case '-':
1981 scale /= 2; 1126 focusWasOn = focus_on_selection;
1127 if (focusWasOn) {
1128 focus_on_selection = false;
1129 scale /= 1.2;
1130 } else {
1131 scale /= 2;
1132 }
1982 calcLeftTop(); 1133 calcLeftTop();
1983 redraw(); 1134 redraw();
1135 focus_on_selection = focusWasOn;
1984 break; 1136 break;
1985 case '=': 1137 case '=':
1986 case '+': 1138 case '+':
1987 scale *= 2; 1139 focusWasOn = focus_on_selection;
1140 if (focusWasOn) {
1141 focus_on_selection = false;
1142 scale *= 1.2;
1143 } else {
1144 scale *= 2;
1145 }
1988 calcLeftTop(); 1146 calcLeftTop();
1989 redraw(); 1147 redraw();
1148 focus_on_selection = focusWasOn;
1990 break; 1149 break;
1991 case 'b': 1150 case 'b':
1992 draw_cubic_red ^= true; 1151 draw_cubic_red ^= true;
1993 redraw(); 1152 redraw();
1994 break; 1153 break;
1995 case 'c': 1154 case 'c':
1996 drawTop(); 1155 drawTop();
1997 break; 1156 break;
1998 case 'd': 1157 case 'd':
1999 var test = tests[testIndex]; 1158 var test = tests[testIndex];
2000 var testClone = []; 1159 var testClone = [];
2001 for (var curves in test) { 1160 for (var curves in test) {
2002 var c = test[curves]; 1161 var c = test[curves];
2003 var cClone = []; 1162 var cClone = [];
2004 for (var index = 0; index < c.length; ++index) { 1163 for (var index = 0; index < c.length; ++index) {
2005 cClone.push(c[index]); 1164 cClone.push(c[index]);
2006 } 1165 }
2007 testClone.push(cClone); 1166 testClone.push(cClone);
2008 } 1167 }
2009 tests.push(testClone); 1168 tests.push(testClone);
2010 testTitles.push(testTitles[testIndex] + " copy"); 1169 testTitles.push(testTitles[testIndex] + " copy");
2011 testIndex = tests.length - 1; 1170 testIndex = tests.length - 1;
2012 redraw(); 1171 redraw();
2013 break; 1172 break;
2014 case 'e': 1173 case 'e':
2015 draw_endpoints ^= true; 1174 draw_endpoints = (draw_endpoints + 1) % 3;
2016 redraw(); 1175 redraw();
2017 break; 1176 break;
2018 case 'f': 1177 case 'f':
2019 draw_derivative ^= true; 1178 draw_derivative ^= true;
2020 redraw(); 1179 redraw();
2021 break; 1180 break;
2022 case 'i': 1181 case 'i':
2023 draw_ray_intersect = (draw_ray_intersect + 1) % 3; 1182 draw_ray_intersect = (draw_ray_intersect + 1) % 3;
2024 redraw(); 1183 redraw();
2025 break; 1184 break;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
2101 redraw(); 1260 redraw();
2102 break; 1261 break;
2103 case 'y': 1262 case 'y':
2104 draw_mouse_xy ^= true; 1263 draw_mouse_xy ^= true;
2105 redraw(); 1264 redraw();
2106 break; 1265 break;
2107 case '\\': 1266 case '\\':
2108 retina_scale ^= true; 1267 retina_scale ^= true;
2109 drawTop(); 1268 drawTop();
2110 break; 1269 break;
1270 case '`':
1271 ++focus_on_selection;
1272 if (focus_on_selection >= tests[testIndex].length) {
1273 focus_on_selection = 0;
1274 }
1275 setScale(xmin, xmax, ymin, ymax);
1276 redraw();
1277 break;
1278 case '.':
1279 draw_id ^= true;
1280 redraw();
1281 break;
2111 } 1282 }
2112 } 1283 }
2113 1284
2114 function doKeyDown(evt) { 1285 function doKeyDown(evt) {
2115 var char = evt.keyCode; 1286 var char = evt.keyCode;
2116 var preventDefault = false; 1287 var preventDefault = false;
2117 switch (char) { 1288 switch (char) {
2118 case 37: // left arrow 1289 case 37: // left arrow
2119 if (evt.shiftKey) { 1290 if (evt.shiftKey) {
2120 testIndex -= 9; 1291 testIndex -= 9;
2121 } 1292 }
2122 if (--testIndex < 0) 1293 if (--testIndex < 0)
2123 testIndex = tests.length - 1; 1294 testIndex = tests.length - 1;
2124 drawTop(); 1295 if (evt.ctrlKey) {
1296 redraw();
1297 } else {
1298 drawTop();
1299 }
2125 preventDefault = true; 1300 preventDefault = true;
2126 break; 1301 break;
2127 case 39: // right arrow 1302 case 39: // right arrow
2128 if (evt.shiftKey) { 1303 if (evt.shiftKey) {
2129 testIndex += 9; 1304 testIndex += 9;
2130 } 1305 }
2131 if (++testIndex >= tests.length) 1306 if (++testIndex >= tests.length)
2132 testIndex = 0; 1307 testIndex = 0;
2133 drawTop(); 1308 if (evt.ctrlKey) {
1309 redraw();
1310 } else {
1311 drawTop();
1312 }
2134 preventDefault = true; 1313 preventDefault = true;
2135 break; 1314 break;
2136 } 1315 }
2137 if (preventDefault) { 1316 if (preventDefault) {
2138 evt.preventDefault(); 1317 evt.preventDefault();
2139 return false; 1318 return false;
2140 } 1319 }
2141 return true; 1320 return true;
2142 } 1321 }
2143 1322
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
2251 <body onLoad="start();"> 1430 <body onLoad="start();">
2252 1431
2253 <canvas id="canvas" width="750" height="500" 1432 <canvas id="canvas" width="750" height="500"
2254 onmousedown="mouseDown = true" 1433 onmousedown="mouseDown = true"
2255 onmouseup="mouseDown = false" 1434 onmouseup="mouseDown = false"
2256 onmousemove="handleMouseOver()" 1435 onmousemove="handleMouseOver()"
2257 onclick="handleMouseClick()" 1436 onclick="handleMouseClick()"
2258 ></canvas > 1437 ></canvas >
2259 </body> 1438 </body>
2260 </html> 1439 </html>
OLDNEW
« no previous file with comments | « tests/PathOpsTightBoundsTest.cpp ('k') | tools/pathops_visualizer.htm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698