@tscircuit/schematic-trace-solver 0.0.46 → 0.0.47
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.d.ts +18 -16
- package/dist/index.js +208 -116
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/TraceLabelOverlapAvoidanceSolver.ts +89 -61
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/rerouteCollidingTrace.ts +16 -5
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/OverlapAvoidanceStepSolver/OverlapAvoidanceStepSolver.ts +27 -16
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/OverlapAvoidanceStepSolver/doesTraceStartOrEndInLabel.ts +58 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/SingleOverlapSolver/SingleOverlapSolver.ts +13 -1
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/tryFourPointDetour.ts +110 -60
- package/package.json +1 -1
- package/site/examples/example27.page.tsx +4 -0
- package/tests/assets/example27.json +168 -0
- package/tests/examples/__snapshots__/example03.snap.svg +67 -67
- package/tests/examples/__snapshots__/example16.snap.svg +3 -3
- package/tests/examples/__snapshots__/example30.snap.svg +258 -0
- package/tests/examples/example30.test.ts +12 -0
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/__snapshots__/TraceLabelOverlapAvoidanceSolver.snap.svg +9 -6
|
@@ -2,216 +2,216 @@
|
|
|
2
2
|
<rect width="100%" height="100%" fill="white" />
|
|
3
3
|
<g>
|
|
4
4
|
<circle data-type="point" data-label="PIN1_PIN2.1
|
|
5
|
-
x-" data-x="-3.5005768910000006" data-y="1.4489565000000004" cx="71.
|
|
5
|
+
x-" data-x="-3.5005768910000006" data-y="1.4489565000000004" cx="71.9568626609827" cy="216.42097033915468" r="3" fill="hsl(328, 100%, 50%, 0.8)" />
|
|
6
6
|
</g>
|
|
7
7
|
<g>
|
|
8
8
|
<circle data-type="point" data-label="PIN1_PIN2.2
|
|
9
|
-
x-" data-x="-3.5005768910000006" data-y="1.4489565000000004" cx="71.
|
|
9
|
+
x-" data-x="-3.5005768910000006" data-y="1.4489565000000004" cx="71.9568626609827" cy="216.42097033915468" r="3" fill="hsl(328, 100%, 50%, 0.8)" />
|
|
10
10
|
</g>
|
|
11
11
|
<g>
|
|
12
12
|
<circle data-type="point" data-label="PIN1_PIN2.3
|
|
13
|
-
x+" data-x="-2.4994231089999994" data-y="1.4485175000000003" cx="
|
|
13
|
+
x+" data-x="-2.4994231089999994" data-y="1.4485175000000003" cx="142.8964057073185" cy="216.4520769083524" r="3" fill="hsl(328, 100%, 50%, 0.8)" />
|
|
14
14
|
</g>
|
|
15
15
|
<g>
|
|
16
16
|
<circle data-type="point" data-label="PIN1_PIN2.4
|
|
17
|
-
x+" data-x="-2.4994231089999994" data-y="1.4485175000000003" cx="
|
|
17
|
+
x+" data-x="-2.4994231089999994" data-y="1.4485175000000003" cx="142.8964057073185" cy="216.4520769083524" r="3" fill="hsl(328, 100%, 50%, 0.8)" />
|
|
18
18
|
</g>
|
|
19
19
|
<g>
|
|
20
20
|
<circle data-type="point" data-label="PIN1_PIN3.1
|
|
21
|
-
x-" data-x="-0.5005768910000006" data-y="1.4489565000000004" cx="
|
|
21
|
+
x-" data-x="-0.5005768910000006" data-y="1.4489565000000004" cx="284.5302284768321" cy="216.42097033915468" r="3" fill="hsl(208, 100%, 50%, 0.8)" />
|
|
22
22
|
</g>
|
|
23
23
|
<g>
|
|
24
24
|
<circle data-type="point" data-label="PIN1_PIN3.2
|
|
25
|
-
x-" data-x="-0.5005768910000006" data-y="1.4489565000000004" cx="
|
|
25
|
+
x-" data-x="-0.5005768910000006" data-y="1.4489565000000004" cx="284.5302284768321" cy="216.42097033915468" r="3" fill="hsl(208, 100%, 50%, 0.8)" />
|
|
26
26
|
</g>
|
|
27
27
|
<g>
|
|
28
28
|
<circle data-type="point" data-label="PIN1_PIN3.3
|
|
29
|
-
x+" data-x="0.5005768910000006" data-y="1.4485175000000003" cx="
|
|
29
|
+
x+" data-x="0.5005768910000006" data-y="1.4485175000000003" cx="355.4697715231679" cy="216.4520769083524" r="3" fill="hsl(208, 100%, 50%, 0.8)" />
|
|
30
30
|
</g>
|
|
31
31
|
<g>
|
|
32
32
|
<circle data-type="point" data-label="PIN1_PIN3.4
|
|
33
|
-
x+" data-x="0.5005768910000006" data-y="1.4485175000000003" cx="
|
|
33
|
+
x+" data-x="0.5005768910000006" data-y="1.4485175000000003" cx="355.4697715231679" cy="216.4520769083524" r="3" fill="hsl(208, 100%, 50%, 0.8)" />
|
|
34
34
|
</g>
|
|
35
35
|
<g>
|
|
36
36
|
<circle data-type="point" data-label="PIN1_PIN4.1
|
|
37
|
-
x-" data-x="2.4994231089999994" data-y="1.4489565000000004" cx="
|
|
37
|
+
x-" data-x="2.4994231089999994" data-y="1.4489565000000004" cx="497.10359429268146" cy="216.42097033915468" r="3" fill="hsl(88, 100%, 50%, 0.8)" />
|
|
38
38
|
</g>
|
|
39
39
|
<g>
|
|
40
40
|
<circle data-type="point" data-label="PIN1_PIN4.2
|
|
41
|
-
x-" data-x="2.4994231089999994" data-y="1.4489565000000004" cx="
|
|
41
|
+
x-" data-x="2.4994231089999994" data-y="1.4489565000000004" cx="497.10359429268146" cy="216.42097033915468" r="3" fill="hsl(88, 100%, 50%, 0.8)" />
|
|
42
42
|
</g>
|
|
43
43
|
<g>
|
|
44
44
|
<circle data-type="point" data-label="PIN1_PIN4.3
|
|
45
|
-
x+" data-x="3.5005768910000006" data-y="1.4485175000000003" cx="
|
|
45
|
+
x+" data-x="3.5005768910000006" data-y="1.4485175000000003" cx="568.0431373390173" cy="216.4520769083524" r="3" fill="hsl(88, 100%, 50%, 0.8)" />
|
|
46
46
|
</g>
|
|
47
47
|
<g>
|
|
48
48
|
<circle data-type="point" data-label="PIN1_PIN4.4
|
|
49
|
-
x+" data-x="3.5005768910000006" data-y="1.4485175000000003" cx="
|
|
49
|
+
x+" data-x="3.5005768910000006" data-y="1.4485175000000003" cx="568.0431373390173" cy="216.4520769083524" r="3" fill="hsl(88, 100%, 50%, 0.8)" />
|
|
50
50
|
</g>
|
|
51
51
|
<g>
|
|
52
52
|
<circle data-type="point" data-label="PIN2_PIN3.1
|
|
53
|
-
x-" data-x="-3.5005768910000006" data-y="-1.5510434999999996" cx="71.
|
|
53
|
+
x-" data-x="-3.5005768910000006" data-y="-1.5510434999999996" cx="71.9568626609827" cy="428.9943361550041" r="3" fill="hsl(240, 100%, 50%, 0.8)" />
|
|
54
54
|
</g>
|
|
55
55
|
<g>
|
|
56
56
|
<circle data-type="point" data-label="PIN2_PIN3.2
|
|
57
|
-
x-" data-x="-3.5005768910000006" data-y="-1.5510434999999996" cx="71.
|
|
57
|
+
x-" data-x="-3.5005768910000006" data-y="-1.5510434999999996" cx="71.9568626609827" cy="428.9943361550041" r="3" fill="hsl(240, 100%, 50%, 0.8)" />
|
|
58
58
|
</g>
|
|
59
59
|
<g>
|
|
60
60
|
<circle data-type="point" data-label="PIN2_PIN3.3
|
|
61
|
-
x+" data-x="-2.4994231089999994" data-y="-1.5514824999999997" cx="
|
|
61
|
+
x+" data-x="-2.4994231089999994" data-y="-1.5514824999999997" cx="142.8964057073185" cy="429.0254427242018" r="3" fill="hsl(240, 100%, 50%, 0.8)" />
|
|
62
62
|
</g>
|
|
63
63
|
<g>
|
|
64
64
|
<circle data-type="point" data-label="PIN2_PIN3.4
|
|
65
|
-
x+" data-x="-2.4994231089999994" data-y="-1.5514824999999997" cx="
|
|
65
|
+
x+" data-x="-2.4994231089999994" data-y="-1.5514824999999997" cx="142.8964057073185" cy="429.0254427242018" r="3" fill="hsl(240, 100%, 50%, 0.8)" />
|
|
66
66
|
</g>
|
|
67
67
|
<g>
|
|
68
68
|
<circle data-type="point" data-label="PIN2_PIN4.1
|
|
69
|
-
x-" data-x="-0.5005768910000006" data-y="-1.5510434999999996" cx="
|
|
69
|
+
x-" data-x="-0.5005768910000006" data-y="-1.5510434999999996" cx="284.5302284768321" cy="428.9943361550041" r="3" fill="hsl(120, 100%, 50%, 0.8)" />
|
|
70
70
|
</g>
|
|
71
71
|
<g>
|
|
72
72
|
<circle data-type="point" data-label="PIN2_PIN4.2
|
|
73
|
-
x-" data-x="-0.5005768910000006" data-y="-1.5510434999999996" cx="
|
|
73
|
+
x-" data-x="-0.5005768910000006" data-y="-1.5510434999999996" cx="284.5302284768321" cy="428.9943361550041" r="3" fill="hsl(120, 100%, 50%, 0.8)" />
|
|
74
74
|
</g>
|
|
75
75
|
<g>
|
|
76
76
|
<circle data-type="point" data-label="PIN2_PIN4.3
|
|
77
|
-
x+" data-x="0.5005768910000006" data-y="-1.5514824999999997" cx="
|
|
77
|
+
x+" data-x="0.5005768910000006" data-y="-1.5514824999999997" cx="355.4697715231679" cy="429.0254427242018" r="3" fill="hsl(120, 100%, 50%, 0.8)" />
|
|
78
78
|
</g>
|
|
79
79
|
<g>
|
|
80
80
|
<circle data-type="point" data-label="PIN2_PIN4.4
|
|
81
|
-
x+" data-x="0.5005768910000006" data-y="-1.5514824999999997" cx="
|
|
81
|
+
x+" data-x="0.5005768910000006" data-y="-1.5514824999999997" cx="355.4697715231679" cy="429.0254427242018" r="3" fill="hsl(120, 100%, 50%, 0.8)" />
|
|
82
82
|
</g>
|
|
83
83
|
<g>
|
|
84
84
|
<circle data-type="point" data-label="PIN3_PIN4.1
|
|
85
|
-
x-" data-x="2.4994231089999994" data-y="-1.5510434999999996" cx="
|
|
85
|
+
x-" data-x="2.4994231089999994" data-y="-1.5510434999999996" cx="497.10359429268146" cy="428.9943361550041" r="3" fill="hsl(152, 100%, 50%, 0.8)" />
|
|
86
86
|
</g>
|
|
87
87
|
<g>
|
|
88
88
|
<circle data-type="point" data-label="PIN3_PIN4.2
|
|
89
|
-
x-" data-x="2.4994231089999994" data-y="-1.5510434999999996" cx="
|
|
89
|
+
x-" data-x="2.4994231089999994" data-y="-1.5510434999999996" cx="497.10359429268146" cy="428.9943361550041" r="3" fill="hsl(152, 100%, 50%, 0.8)" />
|
|
90
90
|
</g>
|
|
91
91
|
<g>
|
|
92
92
|
<circle data-type="point" data-label="PIN3_PIN4.3
|
|
93
|
-
x+" data-x="3.5005768910000006" data-y="-1.5514824999999997" cx="
|
|
93
|
+
x+" data-x="3.5005768910000006" data-y="-1.5514824999999997" cx="568.0431373390173" cy="429.0254427242018" r="3" fill="hsl(152, 100%, 50%, 0.8)" />
|
|
94
94
|
</g>
|
|
95
95
|
<g>
|
|
96
96
|
<circle data-type="point" data-label="PIN3_PIN4.4
|
|
97
|
-
x+" data-x="3.5005768910000006" data-y="-1.5514824999999997" cx="
|
|
97
|
+
x+" data-x="3.5005768910000006" data-y="-1.5514824999999997" cx="568.0431373390173" cy="429.0254427242018" r="3" fill="hsl(152, 100%, 50%, 0.8)" />
|
|
98
98
|
</g>
|
|
99
99
|
<g>
|
|
100
|
-
<circle data-type="point" data-label="" data-x="-3.7005768910000008" data-y="1.4489565000000004" cx="57.
|
|
100
|
+
<circle data-type="point" data-label="" data-x="-3.7005768910000008" data-y="1.4489565000000004" cx="57.78530493992605" cy="216.42097033915468" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
101
101
|
</g>
|
|
102
102
|
<g>
|
|
103
|
-
<circle data-type="point" data-label="" data-x="2.4994231089999994" data-y="1.4489565000000004" cx="
|
|
103
|
+
<circle data-type="point" data-label="" data-x="2.4994231089999994" data-y="1.4489565000000004" cx="497.10359429268146" cy="216.42097033915468" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
104
104
|
</g>
|
|
105
105
|
<g>
|
|
106
|
-
<circle data-type="point" data-label="" data-x="-3.5005768910000006" data-y="1.4489565000000004" cx="71.
|
|
106
|
+
<circle data-type="point" data-label="" data-x="-3.5005768910000006" data-y="1.4489565000000004" cx="71.9568626609827" cy="216.42097033915468" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
107
107
|
</g>
|
|
108
108
|
<g>
|
|
109
|
-
<circle data-type="point" data-label="" data-x="-3.7005768910000008" data-y="-1.5510434999999996" cx="57.
|
|
109
|
+
<circle data-type="point" data-label="" data-x="-3.7005768910000008" data-y="-1.5510434999999996" cx="57.78530493992605" cy="428.9943361550041" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
110
110
|
</g>
|
|
111
111
|
<g>
|
|
112
|
-
<circle data-type="point" data-label="" data-x="0.5005768910000006" data-y="1.4485175000000003" cx="
|
|
112
|
+
<circle data-type="point" data-label="" data-x="0.5005768910000006" data-y="1.4485175000000003" cx="355.4697715231679" cy="216.4520769083524" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
113
113
|
</g>
|
|
114
114
|
<g>
|
|
115
|
-
<circle data-type="point" data-label="" data-x="-2.4994231089999994" data-y="-1.5514824999999997" cx="
|
|
115
|
+
<circle data-type="point" data-label="" data-x="-2.4994231089999994" data-y="-1.5514824999999997" cx="142.8964057073185" cy="429.0254427242018" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
116
116
|
</g>
|
|
117
117
|
<g>
|
|
118
|
-
<circle data-type="point" data-label="" data-x="3.5005768910000006" data-y="-1.5514824999999997" cx="
|
|
118
|
+
<circle data-type="point" data-label="" data-x="3.5005768910000006" data-y="-1.5514824999999997" cx="568.0431373390173" cy="429.0254427242018" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
119
119
|
</g>
|
|
120
120
|
<g>
|
|
121
|
-
<circle data-type="point" data-label="" data-x="3.
|
|
121
|
+
<circle data-type="point" data-label="" data-x="3.7005768910000008" data-y="1.4485175000000003" cx="582.214695060074" cy="216.4520769083524" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
122
122
|
</g>
|
|
123
123
|
<g>
|
|
124
|
-
<circle data-type="point" data-label="" data-x="0.5005768910000006" data-y="-1.5514824999999997" cx="
|
|
124
|
+
<circle data-type="point" data-label="" data-x="0.5005768910000006" data-y="-1.5514824999999997" cx="355.4697715231679" cy="429.0254427242018" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
125
125
|
</g>
|
|
126
126
|
<g>
|
|
127
|
-
<polyline data-points="-3.5005768910000006,1.4489565000000004 -0.5005768910000006,1.4489565000000004" data-type="line" data-label="" points="71.
|
|
127
|
+
<polyline data-points="-3.5005768910000006,1.4489565000000004 -0.5005768910000006,1.4489565000000004" data-type="line" data-label="" points="71.9568626609827,216.42097033915468 284.5302284768321,216.42097033915468" fill="none" stroke="hsl(340, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
128
128
|
</g>
|
|
129
129
|
<g>
|
|
130
|
-
<polyline data-points="-3.5005768910000006,1.4489565000000004 2.4994231089999994,1.4489565000000004" data-type="line" data-label="" points="71.
|
|
130
|
+
<polyline data-points="-3.5005768910000006,1.4489565000000004 2.4994231089999994,1.4489565000000004" data-type="line" data-label="" points="71.9568626609827,216.42097033915468 497.10359429268146,216.42097033915468" fill="none" stroke="hsl(340, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
131
131
|
</g>
|
|
132
132
|
<g>
|
|
133
|
-
<polyline data-points="-0.5005768910000006,1.4489565000000004 2.4994231089999994,1.4489565000000004" data-type="line" data-label="" points="
|
|
133
|
+
<polyline data-points="-0.5005768910000006,1.4489565000000004 2.4994231089999994,1.4489565000000004" data-type="line" data-label="" points="284.5302284768321,216.42097033915468 497.10359429268146,216.42097033915468" fill="none" stroke="hsl(340, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
134
134
|
</g>
|
|
135
135
|
<g>
|
|
136
|
-
<polyline data-points="-3.5005768910000006,1.4489565000000004 -3.5005768910000006,-1.5510434999999996" data-type="line" data-label="" points="71.
|
|
136
|
+
<polyline data-points="-3.5005768910000006,1.4489565000000004 -3.5005768910000006,-1.5510434999999996" data-type="line" data-label="" points="71.9568626609827,216.42097033915468 71.9568626609827,428.9943361550041" fill="none" stroke="hsl(341, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
137
137
|
</g>
|
|
138
138
|
<g>
|
|
139
|
-
<polyline data-points="-3.5005768910000006,1.4489565000000004 -0.5005768910000006,-1.5510434999999996" data-type="line" data-label="" points="71.
|
|
139
|
+
<polyline data-points="-3.5005768910000006,1.4489565000000004 -0.5005768910000006,-1.5510434999999996" data-type="line" data-label="" points="71.9568626609827,216.42097033915468 284.5302284768321,428.9943361550041" fill="none" stroke="hsl(341, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
140
140
|
</g>
|
|
141
141
|
<g>
|
|
142
|
-
<polyline data-points="-3.5005768910000006,-1.5510434999999996 -0.5005768910000006,-1.5510434999999996" data-type="line" data-label="" points="71.
|
|
142
|
+
<polyline data-points="-3.5005768910000006,-1.5510434999999996 -0.5005768910000006,-1.5510434999999996" data-type="line" data-label="" points="71.9568626609827,428.9943361550041 284.5302284768321,428.9943361550041" fill="none" stroke="hsl(341, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
143
143
|
</g>
|
|
144
144
|
<g>
|
|
145
|
-
<polyline data-points="0.5005768910000006,1.4485175000000003 -2.4994231089999994,-1.5514824999999997" data-type="line" data-label="" points="
|
|
145
|
+
<polyline data-points="0.5005768910000006,1.4485175000000003 -2.4994231089999994,-1.5514824999999997" data-type="line" data-label="" points="355.4697715231679,216.4520769083524 142.8964057073185,429.0254427242018" fill="none" stroke="hsl(342, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
146
146
|
</g>
|
|
147
147
|
<g>
|
|
148
|
-
<polyline data-points="0.5005768910000006,1.4485175000000003 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="
|
|
148
|
+
<polyline data-points="0.5005768910000006,1.4485175000000003 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="355.4697715231679,216.4520769083524 568.0431373390173,429.0254427242018" fill="none" stroke="hsl(342, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
149
149
|
</g>
|
|
150
150
|
<g>
|
|
151
|
-
<polyline data-points="-2.4994231089999994,-1.5514824999999997 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="
|
|
151
|
+
<polyline data-points="-2.4994231089999994,-1.5514824999999997 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="142.8964057073185,429.0254427242018 568.0431373390173,429.0254427242018" fill="none" stroke="hsl(342, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
152
152
|
</g>
|
|
153
153
|
<g>
|
|
154
|
-
<polyline data-points="3.5005768910000006,1.4485175000000003 0.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="
|
|
154
|
+
<polyline data-points="3.5005768910000006,1.4485175000000003 0.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="568.0431373390173,216.4520769083524 355.4697715231679,429.0254427242018" fill="none" stroke="hsl(343, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
155
155
|
</g>
|
|
156
156
|
<g>
|
|
157
|
-
<polyline data-points="3.5005768910000006,1.4485175000000003 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="
|
|
157
|
+
<polyline data-points="3.5005768910000006,1.4485175000000003 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="568.0431373390173,216.4520769083524 568.0431373390173,429.0254427242018" fill="none" stroke="hsl(343, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
158
158
|
</g>
|
|
159
159
|
<g>
|
|
160
|
-
<polyline data-points="0.5005768910000006,-1.5514824999999997 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="
|
|
160
|
+
<polyline data-points="0.5005768910000006,-1.5514824999999997 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="355.4697715231679,429.0254427242018 568.0431373390173,429.0254427242018" fill="none" stroke="hsl(343, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
161
161
|
</g>
|
|
162
162
|
<g>
|
|
163
|
-
<polyline data-points="-3.5005768910000006,1.4489565000000004 -3.7005768910000008,1.4489565000000004 -3.7005768910000008,1.0753815000000009 -0.7005768910000008,1.0753815000000009 -0.7005768910000008,1.4489565000000004 -0.5005768910000006,1.4489565000000004" data-type="line" data-label="" points="71.
|
|
163
|
+
<polyline data-points="-3.5005768910000006,1.4489565000000004 -3.7005768910000008,1.4489565000000004 -3.7005768910000008,1.0753815000000009 -0.7005768910000008,1.0753815000000009 -0.7005768910000008,1.4489565000000004 -0.5005768910000006,1.4489565000000004" data-type="line" data-label="" points="71.9568626609827,216.42097033915468 57.78530493992605,216.42097033915468 57.78530493992605,242.8916687173733 270.35867075577545,242.8916687173733 270.35867075577545,216.42097033915468 284.5302284768321,216.42097033915468" fill="none" stroke="purple" stroke-width="1" />
|
|
164
164
|
</g>
|
|
165
165
|
<g>
|
|
166
|
-
<polyline data-points="-3.5005768910000006,-1.5510434999999996 -3.7005768910000008,-1.5510434999999996 -3.7005768910000008,-1.9246184999999991 -0.7005768910000008,-1.9246184999999991 -0.7005768910000008,-1.5510434999999996 -0.5005768910000006,-1.5510434999999996" data-type="line" data-label="" points="71.
|
|
166
|
+
<polyline data-points="-3.5005768910000006,-1.5510434999999996 -3.7005768910000008,-1.5510434999999996 -3.7005768910000008,-1.9246184999999991 -0.7005768910000008,-1.9246184999999991 -0.7005768910000008,-1.5510434999999996 -0.5005768910000006,-1.5510434999999996" data-type="line" data-label="" points="71.9568626609827,428.9943361550041 57.78530493992605,428.9943361550041 57.78530493992605,455.4650345332227 270.35867075577545,455.4650345332227 270.35867075577545,428.9943361550041 284.5302284768321,428.9943361550041" fill="none" stroke="purple" stroke-width="1" />
|
|
167
167
|
</g>
|
|
168
168
|
<g>
|
|
169
|
-
<polyline data-points="3.5005768910000006,1.4485175000000003
|
|
169
|
+
<polyline data-points="3.5005768910000006,1.4485175000000003 3.7005768910000008,1.4485175000000003 3.7005768910000008,-1.5514824999999997 3.5005768910000006,-1.5514824999999997" data-type="line" data-label="" points="568.0431373390173,216.4520769083524 582.214695060074,216.4520769083524 582.214695060074,429.0254427242018 568.0431373390173,429.0254427242018" fill="none" stroke="purple" stroke-width="1" />
|
|
170
170
|
</g>
|
|
171
171
|
<g>
|
|
172
|
-
<rect data-type="rect" data-label="schematic_component_0" data-x="-3" data-y="1.5" x="71.
|
|
172
|
+
<rect data-type="rect" data-label="schematic_component_0" data-x="-3" data-y="1.5" x="71.9568626609827" y="196.8881706166452" width="70.93954304633581" height="31.831940379671494" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014112774610714288" />
|
|
173
173
|
</g>
|
|
174
174
|
<g>
|
|
175
|
-
<rect data-type="rect" data-label="schematic_component_1" data-x="0" data-y="1.5" x="
|
|
175
|
+
<rect data-type="rect" data-label="schematic_component_1" data-x="0" data-y="1.5" x="284.5302284768321" y="196.8881706166452" width="70.93954304633576" height="31.831940379671494" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014112774610714288" />
|
|
176
176
|
</g>
|
|
177
177
|
<g>
|
|
178
|
-
<rect data-type="rect" data-label="schematic_component_2" data-x="3" data-y="1.5" x="
|
|
178
|
+
<rect data-type="rect" data-label="schematic_component_2" data-x="3" data-y="1.5" x="497.10359429268146" y="196.8881706166452" width="70.93954304633587" height="31.831940379671494" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014112774610714288" />
|
|
179
179
|
</g>
|
|
180
180
|
<g>
|
|
181
|
-
<rect data-type="rect" data-label="schematic_component_3" data-x="-3" data-y="-1.5" x="71.
|
|
181
|
+
<rect data-type="rect" data-label="schematic_component_3" data-x="-3" data-y="-1.5" x="71.9568626609827" y="409.4615364324946" width="70.93954304633581" height="31.831940379671494" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014112774610714288" />
|
|
182
182
|
</g>
|
|
183
183
|
<g>
|
|
184
|
-
<rect data-type="rect" data-label="schematic_component_4" data-x="0" data-y="-1.5" x="
|
|
184
|
+
<rect data-type="rect" data-label="schematic_component_4" data-x="0" data-y="-1.5" x="284.5302284768321" y="409.4615364324946" width="70.93954304633576" height="31.831940379671494" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014112774610714288" />
|
|
185
185
|
</g>
|
|
186
186
|
<g>
|
|
187
|
-
<rect data-type="rect" data-label="schematic_component_5" data-x="3" data-y="-1.5" x="
|
|
187
|
+
<rect data-type="rect" data-label="schematic_component_5" data-x="3" data-y="-1.5" x="497.10359429268146" y="409.4615364324946" width="70.93954304633587" height="31.831940379671494" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014112774610714288" />
|
|
188
188
|
</g>
|
|
189
189
|
<g>
|
|
190
|
-
<rect data-type="rect" data-label="" data-x="-3.7005768910000008" data-y="1.6739565000000005" x="50.
|
|
190
|
+
<rect data-type="rect" data-label="" data-x="-3.7005768910000008" data-y="1.6739565000000005" x="50.69952607939774" y="184.53496546677727" width="14.171557721056644" height="31.886004872377413" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014112774610714288" />
|
|
191
191
|
</g>
|
|
192
192
|
<g>
|
|
193
|
-
<rect data-type="rect" data-label="" data-x="2.2734231089999994" data-y="1.4489565000000004" x="
|
|
193
|
+
<rect data-type="rect" data-label="" data-x="2.2734231089999994" data-y="1.4489565000000004" x="465.1467316316988" y="209.33519147862637" width="31.88600487237744" height="14.171557721056615" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014112774610714288" />
|
|
194
194
|
</g>
|
|
195
195
|
<g>
|
|
196
|
-
<rect data-type="rect" data-label="" data-x="-3.7265768910000006" data-y="1.4489565000000004" x="40" y="
|
|
196
|
+
<rect data-type="rect" data-label="" data-x="-3.7265768910000006" data-y="1.4489565000000004" x="40" y="209.33519147862637" width="31.88600487237744" height="14.171557721056615" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014112774610714288" />
|
|
197
197
|
</g>
|
|
198
198
|
<g>
|
|
199
|
-
<rect data-type="rect" data-label="" data-x="-3.7005768910000008" data-y="-1.3260434999999995" x="50.
|
|
199
|
+
<rect data-type="rect" data-label="" data-x="-3.7005768910000008" data-y="-1.3260434999999995" x="50.69952607939774" y="397.10833128262664" width="14.171557721056644" height="31.88600487237744" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014112774610714288" />
|
|
200
200
|
</g>
|
|
201
201
|
<g>
|
|
202
|
-
<rect data-type="rect" data-label="" data-x="0.7265768910000006" data-y="1.4485175000000003" x="
|
|
202
|
+
<rect data-type="rect" data-label="" data-x="0.7265768910000006" data-y="1.4485175000000003" x="355.54062931177316" y="209.3662980478241" width="31.88600487237744" height="14.171557721056615" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014112774610714288" />
|
|
203
203
|
</g>
|
|
204
204
|
<g>
|
|
205
|
-
<rect data-type="rect" data-label="" data-x="-2.2734231089999994" data-y="-1.5514824999999997" x="
|
|
205
|
+
<rect data-type="rect" data-label="" data-x="-2.2734231089999994" data-y="-1.5514824999999997" x="142.96726349592376" y="421.9396638636735" width="31.88600487237744" height="14.171557721056615" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014112774610714288" />
|
|
206
206
|
</g>
|
|
207
207
|
<g>
|
|
208
|
-
<rect data-type="rect" data-label="" data-x="3.7265768910000006" data-y="-1.5514824999999997" x="
|
|
208
|
+
<rect data-type="rect" data-label="" data-x="3.7265768910000006" data-y="-1.5514824999999997" x="568.1139951276225" y="421.9396638636735" width="31.886004872377498" height="14.171557721056615" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014112774610714288" />
|
|
209
209
|
</g>
|
|
210
210
|
<g>
|
|
211
|
-
<rect data-type="rect" data-label="" data-x="3.
|
|
211
|
+
<rect data-type="rect" data-label="" data-x="3.7005768910000008" data-y="1.6735175000000004" x="575.1289161995456" y="184.566072035975" width="14.171557721056615" height="31.886004872377413" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014112774610714288" />
|
|
212
212
|
</g>
|
|
213
213
|
<g>
|
|
214
|
-
<rect data-type="rect" data-label="" data-x="0.7265768910000006" data-y="-1.5514824999999997" x="
|
|
214
|
+
<rect data-type="rect" data-label="" data-x="0.7265768910000006" data-y="-1.5514824999999997" x="355.54062931177316" y="421.9396638636735" width="31.88600487237744" height="14.171557721056615" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014112774610714288" />
|
|
215
215
|
</g>
|
|
216
216
|
<g id="crosshair" style="display: none">
|
|
217
217
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -241,12 +241,12 @@ x+" data-x="3.5005768910000006" data-y="-1.5514824999999997" cx="561.44519917960
|
|
|
241
241
|
|
|
242
242
|
// Calculate real coordinates using inverse transformation
|
|
243
243
|
const matrix = {
|
|
244
|
-
"a":
|
|
244
|
+
"a": 70.85778860528313,
|
|
245
245
|
"c": 0,
|
|
246
|
-
"e":
|
|
246
|
+
"e": 320,
|
|
247
247
|
"b": 0,
|
|
248
|
-
"d": -
|
|
249
|
-
"f": 319.
|
|
248
|
+
"d": -70.85778860528313,
|
|
249
|
+
"f": 319.09082371440564
|
|
250
250
|
};
|
|
251
251
|
// Manually invert and apply the affine transform
|
|
252
252
|
// Since we only use translate and scale, we can directly compute:
|
|
@@ -54,7 +54,7 @@ x-" data-x="1.6" data-y="1.7049999999999998" cx="353.6" cy="244.12000000000006"
|
|
|
54
54
|
<circle data-type="point" data-label="" data-x="1.3" data-y="0.09999999999999998" cx="320" cy="423.88000000000005" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
55
55
|
</g>
|
|
56
56
|
<g>
|
|
57
|
-
<circle data-type="point" data-label="" data-x="0.
|
|
57
|
+
<circle data-type="point" data-label="" data-x="0.749" data-y="2.105" cx="258.288" cy="199.32000000000005" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
58
58
|
</g>
|
|
59
59
|
<g>
|
|
60
60
|
<polyline data-points="1.2000000000000002,-0.30000000000000004 1.6,1.7049999999999998" data-type="line" data-label="" points="308.80000000000007,468.68000000000006 353.6,244.12000000000006" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
@@ -69,7 +69,7 @@ x-" data-x="1.6" data-y="1.7049999999999998" cx="353.6" cy="244.12000000000006"
|
|
|
69
69
|
<polyline data-points="1.2000000000000002,0.09999999999999998 1.3,0.09999999999999998 1.3,1.5049999999999997 1.049,1.5049999999999997 1.049,1.905 1.6,1.9049999999999998" data-type="line" data-label="" points="308.80000000000007,423.88000000000005 320,423.88000000000005 320,266.5200000000001 291.88800000000003,266.5200000000001 291.88800000000003,221.72000000000003 353.6,221.72000000000006" fill="none" stroke="purple" stroke-width="1" />
|
|
70
70
|
</g>
|
|
71
71
|
<g>
|
|
72
|
-
<polyline data-points="1.2000000000000002,0.30000000000000004 1.5000000000000002,0.30000000000000004 1.5000000000000002,1.
|
|
72
|
+
<polyline data-points="1.2000000000000002,0.30000000000000004 1.5000000000000002,0.30000000000000004 1.5000000000000002,1.2049999999999996 0.749,1.2049999999999996 0.749,2.105 1.6,2.105" data-type="line" data-label="" points="308.80000000000007,401.48 342.4000000000001,401.48 342.4000000000001,300.1200000000001 258.288,300.1200000000001 258.288,199.32000000000005 353.6,199.32000000000005" fill="none" stroke="purple" stroke-width="1" />
|
|
73
73
|
</g>
|
|
74
74
|
<g>
|
|
75
75
|
<rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="40" y="379.08000000000004" width="268.80000000000007" height="112" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428" />
|
|
@@ -87,7 +87,7 @@ x-" data-x="1.6" data-y="1.7049999999999998" cx="353.6" cy="244.12000000000006"
|
|
|
87
87
|
<rect data-type="rect" data-label="" data-x="1.5250000000000001" data-y="0.09999999999999998" x="320" y="412.68000000000006" width="50.40000000000009" height="22.399999999999977" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008928571428571428" />
|
|
88
88
|
</g>
|
|
89
89
|
<g>
|
|
90
|
-
<rect data-type="rect" data-label="" data-x="0.
|
|
90
|
+
<rect data-type="rect" data-label="" data-x="0.749" data-y="2.33" x="247.08800000000002" y="148.92000000000002" width="22.400000000000034" height="50.400000000000034" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008928571428571428" />
|
|
91
91
|
</g>
|
|
92
92
|
<g id="crosshair" style="display: none">
|
|
93
93
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|