@tscircuit/schematic-trace-solver 0.0.28 → 0.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +127 -34
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver.ts +7 -8
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver_visualize.ts +2 -3
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/collisions.ts +10 -3
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/solvePortOnlyPin.ts +41 -14
- package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver/generateElbowVariants.ts +129 -6
- package/package.json +1 -1
- package/site/examples/example08.page.tsx +1 -1
- package/tests/examples/__snapshots__/example01.snap.svg +29 -32
- package/tests/examples/__snapshots__/example02.snap.svg +5 -5
- package/tests/examples/__snapshots__/example04.snap.svg +12 -12
- package/tests/examples/__snapshots__/example05.snap.svg +35 -35
- package/tests/examples/__snapshots__/example06.snap.svg +14 -14
- package/tests/examples/__snapshots__/example08.snap.svg +23 -29
- package/tests/examples/__snapshots__/example11.snap.svg +33 -39
- package/tests/examples/__snapshots__/example12.snap.svg +29 -32
- package/tests/examples/__snapshots__/example13.snap.svg +84 -87
- package/tests/examples/__snapshots__/example15.snap.svg +57 -57
- package/tests/examples/example14.test.tsx +0 -1
- package/tests/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver01.test.ts +1 -2
|
@@ -2,100 +2,97 @@
|
|
|
2
2
|
<rect width="100%" height="100%" fill="white" />
|
|
3
3
|
<g>
|
|
4
4
|
<circle data-type="point" data-label="U1.1
|
|
5
|
-
x-" data-x="-0.8" data-y="0.2" cx="422.5742574257426" cy="
|
|
5
|
+
x-" data-x="-0.8" data-y="0.2" cx="422.5742574257426" cy="272.8712871287128" r="3" fill="hsl(319, 100%, 50%, 0.8)" />
|
|
6
6
|
</g>
|
|
7
7
|
<g>
|
|
8
8
|
<circle data-type="point" data-label="U1.2
|
|
9
|
-
x-" data-x="-0.8" data-y="0" cx="422.5742574257426" cy="
|
|
9
|
+
x-" data-x="-0.8" data-y="0" cx="422.5742574257426" cy="295.049504950495" r="3" fill="hsl(320, 100%, 50%, 0.8)" />
|
|
10
10
|
</g>
|
|
11
11
|
<g>
|
|
12
12
|
<circle data-type="point" data-label="U1.3
|
|
13
|
-
x-" data-x="-0.8" data-y="-0.2" cx="422.5742574257426" cy="
|
|
13
|
+
x-" data-x="-0.8" data-y="-0.2" cx="422.5742574257426" cy="317.2277227722772" r="3" fill="hsl(321, 100%, 50%, 0.8)" />
|
|
14
14
|
</g>
|
|
15
15
|
<g>
|
|
16
16
|
<circle data-type="point" data-label="U1.4
|
|
17
|
-
x+" data-x="0.8" data-y="-0.2" cx="600" cy="
|
|
17
|
+
x+" data-x="0.8" data-y="-0.2" cx="600" cy="317.2277227722772" r="3" fill="hsl(322, 100%, 50%, 0.8)" />
|
|
18
18
|
</g>
|
|
19
19
|
<g>
|
|
20
20
|
<circle data-type="point" data-label="U1.5
|
|
21
|
-
x+" data-x="0.8" data-y="0" cx="600" cy="
|
|
21
|
+
x+" data-x="0.8" data-y="0" cx="600" cy="295.049504950495" r="3" fill="hsl(323, 100%, 50%, 0.8)" />
|
|
22
22
|
</g>
|
|
23
23
|
<g>
|
|
24
24
|
<circle data-type="point" data-label="U1.6
|
|
25
|
-
x+" data-x="0.8" data-y="0.2" cx="600" cy="
|
|
25
|
+
x+" data-x="0.8" data-y="0.2" cx="600" cy="272.8712871287128" r="3" fill="hsl(324, 100%, 50%, 0.8)" />
|
|
26
26
|
</g>
|
|
27
27
|
<g>
|
|
28
28
|
<circle data-type="point" data-label="C1.1
|
|
29
|
-
y+" data-x="-2" data-y="0.5" cx="289.50495049504957" cy="
|
|
29
|
+
y+" data-x="-2" data-y="0.5" cx="289.50495049504957" cy="239.60396039603958" r="3" fill="hsl(121, 100%, 50%, 0.8)" />
|
|
30
30
|
</g>
|
|
31
31
|
<g>
|
|
32
32
|
<circle data-type="point" data-label="C1.2
|
|
33
|
-
y-" data-x="-2" data-y="-0.5" cx="289.50495049504957" cy="
|
|
33
|
+
y-" data-x="-2" data-y="-0.5" cx="289.50495049504957" cy="350.4950495049505" r="3" fill="hsl(122, 100%, 50%, 0.8)" />
|
|
34
34
|
</g>
|
|
35
35
|
<g>
|
|
36
36
|
<circle data-type="point" data-label="C2.1
|
|
37
|
-
y+" data-x="-4" data-y="0.5" cx="67.72277227722776" cy="
|
|
37
|
+
y+" data-x="-4" data-y="0.5" cx="67.72277227722776" cy="239.60396039603958" r="3" fill="hsl(2, 100%, 50%, 0.8)" />
|
|
38
38
|
</g>
|
|
39
39
|
<g>
|
|
40
40
|
<circle data-type="point" data-label="C2.2
|
|
41
|
-
y-" data-x="-4" data-y="-0.5" cx="67.72277227722776" cy="
|
|
41
|
+
y-" data-x="-4" data-y="-0.5" cx="67.72277227722776" cy="350.4950495049505" r="3" fill="hsl(3, 100%, 50%, 0.8)" />
|
|
42
42
|
</g>
|
|
43
43
|
<g>
|
|
44
|
-
<circle data-type="point" data-label="" data-x="-1.
|
|
44
|
+
<circle data-type="point" data-label="" data-x="-1.1" data-y="0.20000000000000018" cx="389.3069306930693" cy="272.8712871287128" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
45
45
|
</g>
|
|
46
46
|
<g>
|
|
47
|
-
<circle data-type="point" data-label="" data-x="-
|
|
47
|
+
<circle data-type="point" data-label="" data-x="-1.275" data-y="0" cx="369.90099009900996" cy="295.049504950495" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
48
48
|
</g>
|
|
49
49
|
<g>
|
|
50
|
-
<circle data-type="point" data-label="" data-x="-4" data-y="0.
|
|
50
|
+
<circle data-type="point" data-label="" data-x="-4" data-y="-0.7000000000000002" cx="67.72277227722776" cy="372.6732673267327" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
51
51
|
</g>
|
|
52
52
|
<g>
|
|
53
|
-
<
|
|
53
|
+
<polyline data-points="-0.8,0.2 -2,0.5" data-type="line" data-label="" points="422.5742574257426,272.8712871287128 289.50495049504957,239.60396039603958" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1" />
|
|
54
54
|
</g>
|
|
55
55
|
<g>
|
|
56
|
-
<polyline data-points="-0.8,0
|
|
56
|
+
<polyline data-points="-0.8,0 -4,0.5" data-type="line" data-label="" points="422.5742574257426,295.049504950495 67.72277227722776,239.60396039603958" fill="none" stroke="hsl(57, 100%, 50%, 0.8)" stroke-width="1" />
|
|
57
57
|
</g>
|
|
58
58
|
<g>
|
|
59
|
-
<polyline data-points="-0.8
|
|
59
|
+
<polyline data-points="-0.8,-0.2 -4,-0.5" data-type="line" data-label="" points="422.5742574257426,317.2277227722772 67.72277227722776,350.4950495049505" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
60
60
|
</g>
|
|
61
61
|
<g>
|
|
62
|
-
<polyline data-points="-0.8,-0.2 -
|
|
62
|
+
<polyline data-points="-0.8,-0.2 -2,-0.5" data-type="line" data-label="" points="422.5742574257426,317.2277227722772 289.50495049504957,350.4950495049505" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
63
63
|
</g>
|
|
64
64
|
<g>
|
|
65
|
-
<polyline data-points="-
|
|
65
|
+
<polyline data-points="-4,-0.5 -2,-0.5" data-type="line" data-label="" points="67.72277227722776,350.4950495049505 289.50495049504957,350.4950495049505" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
66
66
|
</g>
|
|
67
67
|
<g>
|
|
68
|
-
<polyline data-points="-4
|
|
68
|
+
<polyline data-points="-0.8,0.20000000000000018 -1.4,0.20000000000000018 -1.4,0.5 -2,0.5" data-type="line" data-label="" points="422.5742574257426,272.8712871287128 356.0396039603961,272.8712871287128 356.0396039603961,239.60396039603958 289.50495049504957,239.60396039603958" fill="none" stroke="purple" stroke-width="1" />
|
|
69
69
|
</g>
|
|
70
70
|
<g>
|
|
71
|
-
<polyline data-points="-0.
|
|
71
|
+
<polyline data-points="-0.7999999999999998,0 -1.275,0 -1.275,0.7 -4,0.7 -4,0.5" data-type="line" data-label="" points="422.57425742574264,295.049504950495 369.90099009900996,295.049504950495 369.90099009900996,217.4257425742574 67.72277227722776,217.4257425742574 67.72277227722776,239.60396039603958" fill="none" stroke="purple" stroke-width="1" />
|
|
72
72
|
</g>
|
|
73
73
|
<g>
|
|
74
|
-
<polyline data-points="-0.8,-0.20000000000000018 -1.4,-0.20000000000000018 -1.4,-0.
|
|
74
|
+
<polyline data-points="-0.8,-0.20000000000000018 -1.4,-0.20000000000000018 -1.4,-0.6 -2,-0.6 -2,-0.5" data-type="line" data-label="" points="422.5742574257426,317.2277227722772 356.0396039603961,317.2277227722772 356.0396039603961,361.58415841584156 289.50495049504957,361.58415841584156 289.50495049504957,350.4950495049505" fill="none" stroke="purple" stroke-width="1" />
|
|
75
75
|
</g>
|
|
76
76
|
<g>
|
|
77
|
-
<polyline data-points="-4,-0.5 -4,-0.7000000000000002 -2,-0.7000000000000002 -2,-0.5" data-type="line" data-label="" points="67.72277227722776,
|
|
77
|
+
<polyline data-points="-4,-0.5 -4,-0.7000000000000002 -2,-0.7000000000000002 -2,-0.5" data-type="line" data-label="" points="67.72277227722776,350.4950495049505 67.72277227722776,372.6732673267327 289.50495049504957,372.6732673267327 289.50495049504957,350.4950495049505" fill="none" stroke="purple" stroke-width="1" />
|
|
78
78
|
</g>
|
|
79
79
|
<g>
|
|
80
|
-
<rect data-type="rect" data-label="U1" data-x="0" data-y="0" x="422.5742574257426" y="
|
|
80
|
+
<rect data-type="rect" data-label="U1" data-x="0" data-y="0" x="422.5742574257426" y="261.78217821782175" width="177.4257425742574" height="66.53465346534654" fill="hsl(164, 100%, 50%, 0.8)" stroke="black" stroke-width="0.009017857142857143" />
|
|
81
81
|
</g>
|
|
82
82
|
<g>
|
|
83
|
-
<rect data-type="rect" data-label="C1" data-x="-2" data-y="0" x="261.7821782178218" y="
|
|
83
|
+
<rect data-type="rect" data-label="C1" data-x="-2" data-y="0" x="261.7821782178218" y="239.60396039603958" width="55.445544554455466" height="110.8910891089109" fill="hsl(326, 100%, 50%, 0.8)" stroke="black" stroke-width="0.009017857142857143" />
|
|
84
84
|
</g>
|
|
85
85
|
<g>
|
|
86
|
-
<rect data-type="rect" data-label="C2" data-x="-4" data-y="0" x="40.00000000000006" y="
|
|
86
|
+
<rect data-type="rect" data-label="C2" data-x="-4" data-y="0" x="40.00000000000006" y="239.60396039603958" width="55.44554455445541" height="110.8910891089109" fill="hsl(327, 100%, 50%, 0.8)" stroke="black" stroke-width="0.009017857142857143" />
|
|
87
87
|
</g>
|
|
88
88
|
<g>
|
|
89
|
-
<rect data-type="rect" data-label="" data-x="-1.
|
|
89
|
+
<rect data-type="rect" data-label="" data-x="-1.1" data-y="0.42500000000000016" x="378.21782178217825" y="222.97029702970292" width="22.178217821782198" height="49.9009900990099" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.009017857142857143" />
|
|
90
90
|
</g>
|
|
91
91
|
<g>
|
|
92
|
-
<rect data-type="rect" data-label="" data-x="-1.
|
|
92
|
+
<rect data-type="rect" data-label="" data-x="-1.5" data-y="0" x="320" y="283.96039603960395" width="49.90099009900996" height="22.17821782178214" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.009017857142857143" />
|
|
93
93
|
</g>
|
|
94
94
|
<g>
|
|
95
|
-
<rect data-type="rect" data-label="" data-x="-4" data-y="0.
|
|
96
|
-
</g>
|
|
97
|
-
<g>
|
|
98
|
-
<rect data-type="rect" data-label="" data-x="-1.4" data-y="-0.9249999999999999" x="344.950495049505" y="397.6237623762376" width="22.178217821782198" height="49.9009900990099" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.009017857142857143" />
|
|
95
|
+
<rect data-type="rect" data-label="" data-x="-4" data-y="-0.9250000000000002" x="56.63366336633669" y="372.6732673267327" width="22.17821782178214" height="49.900990099009846" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.009017857142857143" />
|
|
99
96
|
</g>
|
|
100
97
|
<g id="crosshair" style="display: none">
|
|
101
98
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -130,7 +127,7 @@ y-" data-x="-4" data-y="-0.5" cx="67.72277227722776" cy="375.44554455445547" r="
|
|
|
130
127
|
"e": 511.2871287128713,
|
|
131
128
|
"b": 0,
|
|
132
129
|
"d": -110.89108910891089,
|
|
133
|
-
"f":
|
|
130
|
+
"f": 295.049504950495
|
|
134
131
|
};
|
|
135
132
|
// Manually invert and apply the affine transform
|
|
136
133
|
// Since we only use translate and scale, we can directly compute:
|
|
@@ -53,7 +53,7 @@ x+" data-x="1" data-y="-0.1" cx="500.20151295522464" cy="341.11637364700744" r="
|
|
|
53
53
|
x+" data-x="1" data-y="0.1" cx="500.20151295522464" cy="324.189420823755" r="3" fill="hsl(323, 100%, 50%, 0.8)" />
|
|
54
54
|
</g>
|
|
55
55
|
<g>
|
|
56
|
-
<circle data-type="point" data-label="" data-x="-
|
|
56
|
+
<circle data-type="point" data-label="" data-x="-3.0440232499999995" data-y="1.3024186000000004" cx="157.93655911079327" cy="222.4230062437483" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
57
57
|
</g>
|
|
58
58
|
<g>
|
|
59
59
|
<circle data-type="point" data-label="" data-x="-3.0434765500000003" data-y="-0.2000000000000004" cx="157.98282893633558" cy="349.5798500586337" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
@@ -158,10 +158,10 @@ x+" data-x="1" data-y="0.1" cx="500.20151295522464" cy="324.189420823755" r="3"
|
|
|
158
158
|
<polyline data-points="-1.9148566499999995,1.1024186000000002 -1.9148566499999995,1.3024186000000004 -3.0440232499999995,1.3024186000000004 -3.0440232499999995,1.1024186000000002" data-type="line" data-label="" points="253.50330794975545,239.3499590670008 253.50330794975545,222.4230062437483 157.93655911079327,222.4230062437483 157.93655911079327,239.3499590670008" fill="none" stroke="purple" stroke-width="1" />
|
|
159
159
|
</g>
|
|
160
160
|
<g>
|
|
161
|
-
<polyline data-points="-1,0.20000000000000018 -1.4574283249999997,0.20000000000000018 -1.4574283249999997,1.
|
|
161
|
+
<polyline data-points="-1,0.20000000000000018 -1.4574283249999997,0.20000000000000018 -1.4574283249999997,1.2024186000000006 -1.9148566499999995,1.2024186000000006 -1.9148566499999995,1.1024186000000005" data-type="line" data-label="" points="330.93198472269955,315.7259444121287 292.2176463362275,315.7259444121287 292.2176463362275,230.88648265537452 253.50330794975545,230.88648265537452 253.50330794975545,239.34995906700078" fill="none" stroke="purple" stroke-width="1" />
|
|
162
162
|
</g>
|
|
163
163
|
<g>
|
|
164
|
-
<polyline data-points="-1,-0.2 -1.
|
|
164
|
+
<polyline data-points="-1,-0.2 -1.2,-0.2 -1.2,0.2 -1,0.2" data-type="line" data-label="" points="330.93198472269955,349.5798500586337 314.0050318994471,349.5798500586337 314.0050318994471,315.7259444121287 330.93198472269955,315.7259444121287" fill="none" stroke="purple" stroke-width="1" />
|
|
165
165
|
</g>
|
|
166
166
|
<g>
|
|
167
167
|
<polyline data-points="-3.0434765500000003,-2.220446049250313e-16 -3.0434765500000003,-0.2000000000000004 -4.17264315,-0.2000000000000004 -4.17264315,-2.220446049250313e-16" data-type="line" data-label="" points="157.98282893633558,332.6528972353812 157.98282893633558,349.5798500586337 62.41608009737348,349.5798500586337 62.41608009737348,332.6528972353812" fill="none" stroke="purple" stroke-width="1" />
|
|
@@ -170,7 +170,7 @@ x+" data-x="1" data-y="0.1" cx="500.20151295522464" cy="324.189420823755" r="3"
|
|
|
170
170
|
<polyline data-points="-1.9143099500000003,-2.220446049250313e-16 -1.9143099500000003,-0.2000000000000004 -3.0434765500000003,-0.2000000000000004 -3.0434765500000003,-2.220446049250313e-16" data-type="line" data-label="" points="253.54957777529776,332.6528972353812 253.54957777529776,349.5798500586337 157.98282893633558,349.5798500586337 157.98282893633558,332.6528972353812" fill="none" stroke="purple" stroke-width="1" />
|
|
171
171
|
</g>
|
|
172
172
|
<g>
|
|
173
|
-
<polyline data-points="-1,0 -1.
|
|
173
|
+
<polyline data-points="-1,0 -1.325,0 -1.325,-0.1500000000000002 -1.9143099500000003,-0.1500000000000002 -1.9143099500000003,0" data-type="line" data-label="" points="330.93198472269955,332.6528972353812 303.42568638491423,332.6528972353812 303.42568638491423,345.3481118528206 253.54957777529776,345.3481118528206 253.54957777529776,332.6528972353812" fill="none" stroke="purple" stroke-width="1" />
|
|
174
174
|
</g>
|
|
175
175
|
<g>
|
|
176
176
|
<polyline data-points="1,0.1 1.9143099500000003,0.1" data-type="line" data-label="" points="500.20151295522464,324.189420823755 577.5839199026265,324.189420823755" fill="none" stroke="purple" stroke-width="1" />
|
|
@@ -191,7 +191,7 @@ x+" data-x="1" data-y="0.1" cx="500.20151295522464" cy="324.189420823755" r="3"
|
|
|
191
191
|
<rect data-type="rect" data-label="schematic_component_4" data-x="0" data-y="0" x="330.93198472269955" y="298.7989915888762" width="169.2695282325251" height="67.70781129300997" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011815475714285715" />
|
|
192
192
|
</g>
|
|
193
193
|
<g>
|
|
194
|
-
<rect data-type="rect" data-label="" data-x="-
|
|
194
|
+
<rect data-type="rect" data-label="" data-x="-3.0440232499999995" data-y="1.5274186000000005" x="149.47308269916704" y="184.33736239143013" width="16.92695282325252" height="38.08564385231816" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.011815475714285715" />
|
|
195
195
|
</g>
|
|
196
196
|
<g>
|
|
197
197
|
<rect data-type="rect" data-label="" data-x="-3.0434765500000003" data-y="-0.4250000000000004" x="149.51935252470935" y="349.5798500586337" width="16.926952823252492" height="38.085643852318185" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.011815475714285715" />
|
|
@@ -2,30 +2,30 @@
|
|
|
2
2
|
<rect width="100%" height="100%" fill="white" />
|
|
3
3
|
<g>
|
|
4
4
|
<circle data-type="point" data-label="Q1.1
|
|
5
|
-
y+" data-x="0.30397715550000004" data-y="0.5800832909999993" cx="
|
|
5
|
+
y+" data-x="0.30397715550000004" data-y="0.5800832909999993" cx="398.5713361931903" cy="210.15008622007596" r="3" fill="hsl(315, 100%, 50%, 0.8)" />
|
|
6
6
|
</g>
|
|
7
7
|
<g>
|
|
8
8
|
<circle data-type="point" data-label="Q1.2
|
|
9
|
-
y-" data-x="0.31067575550000137" data-y="-0.5800832909999993" cx="
|
|
9
|
+
y-" data-x="0.31067575550000137" data-y="-0.5800832909999993" cx="400.643640497834" cy="569.0636206872589" r="3" fill="hsl(316, 100%, 50%, 0.8)" />
|
|
10
10
|
</g>
|
|
11
11
|
<g>
|
|
12
12
|
<circle data-type="point" data-label="Q1.3
|
|
13
|
-
x-" data-x="-0.4467558855000001" data-y="-0.10250625000000019" cx="
|
|
13
|
+
x-" data-x="-0.4467558855000001" data-y="-0.10250625000000019" cx="166.32171500335414" cy="421.31857577293414" r="3" fill="hsl(317, 100%, 50%, 0.8)" />
|
|
14
14
|
</g>
|
|
15
15
|
<g>
|
|
16
|
-
<circle data-type="point" data-label="" data-x="0.30397715550000004" data-y="0.
|
|
16
|
+
<circle data-type="point" data-label="" data-x="0.30397715550000004" data-y="0.6800832909999993" cx="398.5713361931903" cy="179.21370690733488" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
17
17
|
</g>
|
|
18
18
|
<g>
|
|
19
|
-
<polyline data-points="0.30397715550000004,0.5800832909999993 0.31067575550000137,-0.5800832909999993" data-type="line" data-label="" points="
|
|
19
|
+
<polyline data-points="0.30397715550000004,0.5800832909999993 0.31067575550000137,-0.5800832909999993" data-type="line" data-label="" points="398.5713361931903,210.15008622007596 400.643640497834,569.0636206872589" fill="none" stroke="hsl(73, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
20
20
|
</g>
|
|
21
21
|
<g>
|
|
22
|
-
<polyline data-points="0.30397715550000004,0.5800832909999993 0.30397715550000004,0.
|
|
22
|
+
<polyline data-points="0.30397715550000004,0.5800832909999993 0.30397715550000004,0.6800832909999993 0.5467558855000001,0.6800832909999993 0.5467558855000001,-0.6800832909999993 0.31067575550000137,-0.6800832909999993 0.31067575550000137,-0.5800832909999993" data-type="line" data-label="" points="398.5713361931903,210.15008622007596 398.5713361931903,179.21370690733488 473.67828499664586,179.21370690733488 473.67828499664586,600 400.643640497834,600 400.643640497834,569.0636206872589" fill="none" stroke="purple" stroke-width="1" />
|
|
23
23
|
</g>
|
|
24
24
|
<g>
|
|
25
|
-
<rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="
|
|
25
|
+
<rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="166.32171500335414" y="210.15008622007596" width="276.4201906805506" height="358.9135344671829" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.0032324403249999975" />
|
|
26
26
|
</g>
|
|
27
27
|
<g>
|
|
28
|
-
<rect data-type="rect" data-label="" data-x="0.30397715550000004" data-y="
|
|
28
|
+
<rect data-type="rect" data-label="" data-x="0.30397715550000004" data-y="0.9050832909999993" x="367.6349568804492" y="40" width="61.87275862548216" height="139.21370690733488" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.0032324403249999975" />
|
|
29
29
|
</g>
|
|
30
30
|
<g id="crosshair" style="display: none">
|
|
31
31
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -55,12 +55,12 @@ x-" data-x="-0.4467558855000001" data-y="-0.10250625000000019" cx="181.611819452
|
|
|
55
55
|
|
|
56
56
|
// Calculate real coordinates using inverse transformation
|
|
57
57
|
const matrix = {
|
|
58
|
-
"a":
|
|
58
|
+
"a": 309.3637931274109,
|
|
59
59
|
"c": 0,
|
|
60
|
-
"e":
|
|
60
|
+
"e": 304.53181034362945,
|
|
61
61
|
"b": 0,
|
|
62
|
-
"d": -
|
|
63
|
-
"f":
|
|
62
|
+
"d": -309.3637931274109,
|
|
63
|
+
"f": 389.60685345366744
|
|
64
64
|
};
|
|
65
65
|
// Manually invert and apply the affine transform
|
|
66
66
|
// Since we only use translate and scale, we can directly compute:
|
|
@@ -2,133 +2,133 @@
|
|
|
2
2
|
<rect width="100%" height="100%" fill="white" />
|
|
3
3
|
<g>
|
|
4
4
|
<circle data-type="point" data-label="U1.1
|
|
5
|
-
x+" data-x="0.9" data-y="1.2" cx="
|
|
5
|
+
x+" data-x="0.9" data-y="1.2" cx="305.1696325490196" cy="193.72549019607843" r="3" fill="hsl(319, 100%, 50%, 0.8)" />
|
|
6
6
|
</g>
|
|
7
7
|
<g>
|
|
8
8
|
<circle data-type="point" data-label="U1.2
|
|
9
|
-
x+" data-x="0.9" data-y="0.3999999999999999" cx="
|
|
9
|
+
x+" data-x="0.9" data-y="0.3999999999999999" cx="305.1696325490196" cy="281.5686274509804" r="3" fill="hsl(320, 100%, 50%, 0.8)" />
|
|
10
10
|
</g>
|
|
11
11
|
<g>
|
|
12
12
|
<circle data-type="point" data-label="U1.3
|
|
13
|
-
x+" data-x="0.9" data-y="0.5999999999999999" cx="
|
|
13
|
+
x+" data-x="0.9" data-y="0.5999999999999999" cx="305.1696325490196" cy="259.6078431372549" r="3" fill="hsl(321, 100%, 50%, 0.8)" />
|
|
14
14
|
</g>
|
|
15
15
|
<g>
|
|
16
16
|
<circle data-type="point" data-label="U1.4
|
|
17
|
-
x-" data-x="-0.9" data-y="0.3999999999999999" cx="
|
|
17
|
+
x-" data-x="-0.9" data-y="0.3999999999999999" cx="107.52257372549018" cy="281.5686274509804" r="3" fill="hsl(322, 100%, 50%, 0.8)" />
|
|
18
18
|
</g>
|
|
19
19
|
<g>
|
|
20
20
|
<circle data-type="point" data-label="U1.5
|
|
21
|
-
x+" data-x="0.9" data-y="0.9999999999999998" cx="
|
|
21
|
+
x+" data-x="0.9" data-y="0.9999999999999998" cx="305.1696325490196" cy="215.68627450980395" r="3" fill="hsl(323, 100%, 50%, 0.8)" />
|
|
22
22
|
</g>
|
|
23
23
|
<g>
|
|
24
24
|
<circle data-type="point" data-label="U1.6
|
|
25
|
-
x+" data-x="0.9" data-y="-0.19999999999999996" cx="
|
|
25
|
+
x+" data-x="0.9" data-y="-0.19999999999999996" cx="305.1696325490196" cy="347.45098039215685" r="3" fill="hsl(324, 100%, 50%, 0.8)" />
|
|
26
26
|
</g>
|
|
27
27
|
<g>
|
|
28
28
|
<circle data-type="point" data-label="U1.7
|
|
29
|
-
x-" data-x="-0.9" data-y="-0.7999999999999998" cx="
|
|
29
|
+
x-" data-x="-0.9" data-y="-0.7999999999999998" cx="107.52257372549018" cy="413.3333333333333" r="3" fill="hsl(325, 100%, 50%, 0.8)" />
|
|
30
30
|
</g>
|
|
31
31
|
<g>
|
|
32
32
|
<circle data-type="point" data-label="U1.9
|
|
33
|
-
x+" data-x="0.9" data-y="0.19999999999999996" cx="
|
|
33
|
+
x+" data-x="0.9" data-y="0.19999999999999996" cx="305.1696325490196" cy="303.5294117647059" r="3" fill="hsl(327, 100%, 50%, 0.8)" />
|
|
34
34
|
</g>
|
|
35
35
|
<g>
|
|
36
36
|
<circle data-type="point" data-label="U1.10
|
|
37
|
-
x+" data-x="0.9" data-y="0" cx="
|
|
37
|
+
x+" data-x="0.9" data-y="0" cx="305.1696325490196" cy="325.4901960784314" r="3" fill="hsl(217, 100%, 50%, 0.8)" />
|
|
38
38
|
</g>
|
|
39
39
|
<g>
|
|
40
40
|
<circle data-type="point" data-label="U1.11
|
|
41
|
-
x+" data-x="0.9" data-y="0.7999999999999998" cx="
|
|
41
|
+
x+" data-x="0.9" data-y="0.7999999999999998" cx="305.1696325490196" cy="237.64705882352945" r="3" fill="hsl(218, 100%, 50%, 0.8)" />
|
|
42
42
|
</g>
|
|
43
43
|
<g>
|
|
44
44
|
<circle data-type="point" data-label="U1.12
|
|
45
|
-
x+" data-x="0.9" data-y="-1.2" cx="
|
|
45
|
+
x+" data-x="0.9" data-y="-1.2" cx="305.1696325490196" cy="457.2549019607843" r="3" fill="hsl(219, 100%, 50%, 0.8)" />
|
|
46
46
|
</g>
|
|
47
47
|
<g>
|
|
48
48
|
<circle data-type="point" data-label="U1.13
|
|
49
|
-
x+" data-x="0.9" data-y="-1" cx="
|
|
49
|
+
x+" data-x="0.9" data-y="-1" cx="305.1696325490196" cy="435.29411764705884" r="3" fill="hsl(220, 100%, 50%, 0.8)" />
|
|
50
50
|
</g>
|
|
51
51
|
<g>
|
|
52
52
|
<circle data-type="point" data-label="U1.14
|
|
53
|
-
x+" data-x="0.9" data-y="-0.7999999999999999" cx="
|
|
53
|
+
x+" data-x="0.9" data-y="-0.7999999999999999" cx="305.1696325490196" cy="413.33333333333337" r="3" fill="hsl(221, 100%, 50%, 0.8)" />
|
|
54
54
|
</g>
|
|
55
55
|
<g>
|
|
56
56
|
<circle data-type="point" data-label="U1.15
|
|
57
|
-
x-" data-x="-0.9" data-y="1" cx="
|
|
57
|
+
x-" data-x="-0.9" data-y="1" cx="107.52257372549018" cy="215.68627450980392" r="3" fill="hsl(222, 100%, 50%, 0.8)" />
|
|
58
58
|
</g>
|
|
59
59
|
<g>
|
|
60
60
|
<circle data-type="point" data-label="U1.16
|
|
61
|
-
x-" data-x="-0.9" data-y="1.2" cx="
|
|
61
|
+
x-" data-x="-0.9" data-y="1.2" cx="107.52257372549018" cy="193.72549019607843" r="3" fill="hsl(223, 100%, 50%, 0.8)" />
|
|
62
62
|
</g>
|
|
63
63
|
<g>
|
|
64
64
|
<circle data-type="point" data-label="U1.17
|
|
65
|
-
x-" data-x="-0.9" data-y="0.5999999999999999" cx="
|
|
65
|
+
x-" data-x="-0.9" data-y="0.5999999999999999" cx="107.52257372549018" cy="259.6078431372549" r="3" fill="hsl(224, 100%, 50%, 0.8)" />
|
|
66
66
|
</g>
|
|
67
67
|
<g>
|
|
68
68
|
<circle data-type="point" data-label="U1.18
|
|
69
|
-
x-" data-x="-0.9" data-y="-0.9999999999999998" cx="
|
|
69
|
+
x-" data-x="-0.9" data-y="-0.9999999999999998" cx="107.52257372549018" cy="435.2941176470588" r="3" fill="hsl(225, 100%, 50%, 0.8)" />
|
|
70
70
|
</g>
|
|
71
71
|
<g>
|
|
72
72
|
<circle data-type="point" data-label="U1.19
|
|
73
|
-
x-" data-x="-0.9" data-y="-0.19999999999999996" cx="
|
|
73
|
+
x-" data-x="-0.9" data-y="-0.19999999999999996" cx="107.52257372549018" cy="347.45098039215685" r="3" fill="hsl(226, 100%, 50%, 0.8)" />
|
|
74
74
|
</g>
|
|
75
75
|
<g>
|
|
76
76
|
<circle data-type="point" data-label="U1.20
|
|
77
|
-
x-" data-x="-0.9" data-y="0.7999999999999999" cx="
|
|
77
|
+
x-" data-x="-0.9" data-y="0.7999999999999999" cx="107.52257372549018" cy="237.64705882352942" r="3" fill="hsl(248, 100%, 50%, 0.8)" />
|
|
78
78
|
</g>
|
|
79
79
|
<g>
|
|
80
80
|
<circle data-type="point" data-label="U1.21
|
|
81
|
-
x-" data-x="-0.9" data-y="-1.2" cx="
|
|
81
|
+
x-" data-x="-0.9" data-y="-1.2" cx="107.52257372549018" cy="457.2549019607843" r="3" fill="hsl(249, 100%, 50%, 0.8)" />
|
|
82
82
|
</g>
|
|
83
83
|
<g>
|
|
84
84
|
<circle data-type="point" data-label="U1.22
|
|
85
|
-
x+" data-x="0.9" data-y="-0.5999999999999999" cx="
|
|
85
|
+
x+" data-x="0.9" data-y="-0.5999999999999999" cx="305.1696325490196" cy="391.37254901960785" r="3" fill="hsl(250, 100%, 50%, 0.8)" />
|
|
86
86
|
</g>
|
|
87
87
|
<g>
|
|
88
88
|
<circle data-type="point" data-label="U1.23
|
|
89
|
-
x+" data-x="0.9" data-y="-0.3999999999999999" cx="
|
|
89
|
+
x+" data-x="0.9" data-y="-0.3999999999999999" cx="305.1696325490196" cy="369.4117647058824" r="3" fill="hsl(251, 100%, 50%, 0.8)" />
|
|
90
90
|
</g>
|
|
91
91
|
<g>
|
|
92
92
|
<circle data-type="point" data-label="U1.25
|
|
93
|
-
x-" data-x="-0.9" data-y="-0.5999999999999999" cx="
|
|
93
|
+
x-" data-x="-0.9" data-y="-0.5999999999999999" cx="107.52257372549018" cy="391.37254901960785" r="3" fill="hsl(253, 100%, 50%, 0.8)" />
|
|
94
94
|
</g>
|
|
95
95
|
<g>
|
|
96
96
|
<circle data-type="point" data-label="U1.26
|
|
97
|
-
x-" data-x="-0.9" data-y="-0.3999999999999999" cx="
|
|
97
|
+
x-" data-x="-0.9" data-y="-0.3999999999999999" cx="107.52257372549018" cy="369.4117647058824" r="3" fill="hsl(254, 100%, 50%, 0.8)" />
|
|
98
98
|
</g>
|
|
99
99
|
<g>
|
|
100
100
|
<circle data-type="point" data-label="U1.27
|
|
101
|
-
x-" data-x="-0.9" data-y="0.19999999999999996" cx="
|
|
101
|
+
x-" data-x="-0.9" data-y="0.19999999999999996" cx="107.52257372549018" cy="303.5294117647059" r="3" fill="hsl(255, 100%, 50%, 0.8)" />
|
|
102
102
|
</g>
|
|
103
103
|
<g>
|
|
104
104
|
<circle data-type="point" data-label="U1.28
|
|
105
|
-
x-" data-x="-0.9" data-y="0" cx="
|
|
105
|
+
x-" data-x="-0.9" data-y="0" cx="107.52257372549018" cy="325.4901960784314" r="3" fill="hsl(256, 100%, 50%, 0.8)" />
|
|
106
106
|
</g>
|
|
107
107
|
<g>
|
|
108
108
|
<circle data-type="point" data-label="LED1.1
|
|
109
|
-
x-" data-x="1.4798754500000002" data-y="1.0005122999999987" cx="
|
|
109
|
+
x-" data-x="1.4798754500000002" data-y="1.0005122999999987" cx="368.8422309803922" cy="215.63002196078446" r="3" fill="hsl(57, 100%, 50%, 0.8)" />
|
|
110
110
|
</g>
|
|
111
111
|
<g>
|
|
112
112
|
<circle data-type="point" data-label="LED1.2
|
|
113
|
-
x+" data-x="2.52012455" data-y="0.9994877000000013" cx="
|
|
113
|
+
x+" data-x="2.52012455" data-y="0.9994877000000013" cx="483.06566156862743" cy="215.74252705882338" r="3" fill="hsl(58, 100%, 50%, 0.8)" />
|
|
114
114
|
</g>
|
|
115
115
|
<g>
|
|
116
|
-
<circle data-type="point" data-label="" data-x="2.
|
|
116
|
+
<circle data-type="point" data-label="" data-x="2.62012455" data-y="0.9994877000000013" cx="494.0460537254902" cy="215.74252705882338" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
117
117
|
</g>
|
|
118
118
|
<g>
|
|
119
|
-
<polyline data-points="2.52012455,0.9994877000000013 -0.9,0.7999999999999999" data-type="line" data-label="" points="
|
|
119
|
+
<polyline data-points="2.52012455,0.9994877000000013 -0.9,0.7999999999999999" data-type="line" data-label="" points="483.06566156862743,215.74252705882338 107.52257372549018,237.64705882352942" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1" />
|
|
120
120
|
</g>
|
|
121
121
|
<g>
|
|
122
|
-
<polyline data-points="2.5201245500000002,0.9994877000000013 2.
|
|
122
|
+
<polyline data-points="2.5201245500000002,0.9994877000000013 2.62012455,0.9994877000000013 2.62012455,2.6 -1,2.6 -1,0.7999999999999999 -0.9,0.7999999999999999" data-type="line" data-label="" points="483.0656615686275,215.74252705882338 494.0460537254902,215.74252705882338 494.0460537254902,40 96.54218156862743,40 96.54218156862743,237.64705882352942 107.52257372549018,237.64705882352942" fill="none" stroke="purple" stroke-width="1" />
|
|
123
123
|
</g>
|
|
124
124
|
<g>
|
|
125
|
-
<rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="
|
|
125
|
+
<rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="107.52257372549018" y="50.98039215686276" width="197.6470588235294" height="549.0196078431372" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.009107142857142857" />
|
|
126
126
|
</g>
|
|
127
127
|
<g>
|
|
128
|
-
<rect data-type="rect" data-label="schematic_component_1" data-x="2" data-y="1" x="
|
|
128
|
+
<rect data-type="rect" data-label="schematic_component_1" data-x="2" data-y="1" x="368.8422309803922" y="185.61698666666672" width="114.22343058823526" height="60.13857568627441" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.009107142857142857" />
|
|
129
129
|
</g>
|
|
130
130
|
<g>
|
|
131
|
-
<rect data-type="rect" data-label="" data-x="2.
|
|
131
|
+
<rect data-type="rect" data-label="" data-x="2.84512455" data-y="0.9994877000000013" x="494.0460537254902" y="204.76213490196062" width="49.41176470588232" height="21.960784313725526" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.009107142857142857" />
|
|
132
132
|
</g>
|
|
133
133
|
<g id="crosshair" style="display: none">
|
|
134
134
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -160,7 +160,7 @@ x+" data-x="2.52012455" data-y="0.9994877000000013" cx="507.7715439215686" cy="2
|
|
|
160
160
|
const matrix = {
|
|
161
161
|
"a": 109.80392156862746,
|
|
162
162
|
"c": 0,
|
|
163
|
-
"e":
|
|
163
|
+
"e": 206.3461031372549,
|
|
164
164
|
"b": 0,
|
|
165
165
|
"d": -109.80392156862746,
|
|
166
166
|
"f": 325.4901960784314
|
|
@@ -2,37 +2,37 @@
|
|
|
2
2
|
<rect width="100%" height="100%" fill="white" />
|
|
3
3
|
<g>
|
|
4
4
|
<circle data-type="point" data-label="R1.1
|
|
5
|
-
x-" data-x="-3.5512907000000005" data-y="0.0002732499999993365" cx="
|
|
5
|
+
x-" data-x="-3.5512907000000005" data-y="0.0002732499999993365" cx="80.24828487422417" cy="319.9800039202875" r="3" fill="hsl(226, 100%, 50%, 0.8)" />
|
|
6
6
|
</g>
|
|
7
7
|
<g>
|
|
8
8
|
<circle data-type="point" data-label="R1.2
|
|
9
|
-
x+" data-x="-2.4487092999999995" data-y="-0.0002732499999993365" cx="
|
|
9
|
+
x+" data-x="-2.4487092999999995" data-y="-0.0002732499999993365" cx="160.9337581182621" cy="320.0199960797125" r="3" fill="hsl(227, 100%, 50%, 0.8)" />
|
|
10
10
|
</g>
|
|
11
11
|
<g>
|
|
12
12
|
<circle data-type="point" data-label="C1.1
|
|
13
|
-
x-" data-x="2.4487906999999995" data-y="-0.00027334999999961695" cx="
|
|
13
|
+
x-" data-x="2.4487906999999995" data-y="-0.00027334999999961695" cx="519.3264402482848" cy="320.02000339758246" r="3" fill="hsl(121, 100%, 50%, 0.8)" />
|
|
14
14
|
</g>
|
|
15
15
|
<g>
|
|
16
16
|
<circle data-type="point" data-label="C1.2
|
|
17
|
-
x+" data-x="3.5512093000000005" data-y="0.00027334999999961695" cx="600" cy="
|
|
17
|
+
x+" data-x="3.5512093000000005" data-y="0.00027334999999961695" cx="600" cy="319.97999660241754" r="3" fill="hsl(122, 100%, 50%, 0.8)" />
|
|
18
18
|
</g>
|
|
19
19
|
<g>
|
|
20
|
-
<circle data-type="point" data-label="" data-x="-3.
|
|
20
|
+
<circle data-type="point" data-label="" data-x="-3.6512907000000006" data-y="0.0002732499999993365" cx="72.93041489709248" cy="319.9800039202875" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
21
21
|
</g>
|
|
22
22
|
<g>
|
|
23
|
-
<polyline data-points="-3.5512907000000005,0.0002732499999993365 2.4487906999999995,-0.00027334999999961695" data-type="line" data-label="" points="
|
|
23
|
+
<polyline data-points="-3.5512907000000005,0.0002732499999993365 2.4487906999999995,-0.00027334999999961695" data-type="line" data-label="" points="80.24828487422417,319.9800039202875 519.3264402482848,320.02000339758246" fill="none" stroke="hsl(72, 100%, 50%, 0.8)" stroke-width="1" />
|
|
24
24
|
</g>
|
|
25
25
|
<g>
|
|
26
|
-
<polyline data-points="-3.5512907000000005,0.0002732499999993365 -3.
|
|
26
|
+
<polyline data-points="-3.5512907000000005,0.0002732499999993365 -3.6512907000000006,0.0002732499999993365 -3.6512907000000006,0.20027324999999935 2.2487906999999994,0.20027324999999935 2.2487906999999994,-0.00027334999999961695 2.4487906999999987,-0.00027334999999961695" data-type="line" data-label="" points="80.24828487422417,319.9800039202875 72.93041489709248,319.9800039202875 72.93041489709248,305.34426396602424 504.6907002940215,305.34426396602424 504.6907002940215,320.02000339758246 519.3264402482847,320.02000339758246" fill="none" stroke="purple" stroke-width="1" />
|
|
27
27
|
</g>
|
|
28
28
|
<g>
|
|
29
|
-
<rect data-type="rect" data-label="schematic_component_0" data-x="-3" data-y="0" x="
|
|
29
|
+
<rect data-type="rect" data-label="schematic_component_0" data-x="-3" data-y="0" x="80.24828487422417" y="305.7700103234238" width="80.68547324403792" height="28.45997935315245" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013665178571428575" />
|
|
30
30
|
</g>
|
|
31
31
|
<g>
|
|
32
|
-
<rect data-type="rect" data-label="schematic_component_1" data-x="3" data-y="0" x="
|
|
32
|
+
<rect data-type="rect" data-label="schematic_component_1" data-x="3" data-y="0" x="519.3264402482848" y="289.2643131002939" width="80.67355975171517" height="61.47137379941216" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.013665178571428575" />
|
|
33
33
|
</g>
|
|
34
34
|
<g>
|
|
35
|
-
<rect data-type="rect" data-label="" data-x="-3.
|
|
35
|
+
<rect data-type="rect" data-label="" data-x="-3.8762907000000006" data-y="0.0002732499999993365" x="40.00000000000006" y="312.6621339431559" width="32.93041489709242" height="14.635739954263329" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.013665178571428575" />
|
|
36
36
|
</g>
|
|
37
37
|
<g id="crosshair" style="display: none">
|
|
38
38
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -62,12 +62,12 @@ x+" data-x="3.5512093000000005" data-y="0.00027334999999961695" cx="600" cy="318
|
|
|
62
62
|
|
|
63
63
|
// Calculate real coordinates using inverse transformation
|
|
64
64
|
const matrix = {
|
|
65
|
-
"a":
|
|
65
|
+
"a": 73.17869977131654,
|
|
66
66
|
"c": 0,
|
|
67
|
-
"e":
|
|
67
|
+
"e": 340.12712081019276,
|
|
68
68
|
"b": 0,
|
|
69
|
-
"d": -
|
|
70
|
-
"f":
|
|
69
|
+
"d": -73.17869977131654,
|
|
70
|
+
"f": 320
|
|
71
71
|
};
|
|
72
72
|
// Manually invert and apply the affine transform
|
|
73
73
|
// Since we only use translate and scale, we can directly compute:
|