From def40714a705f27efc0bc6cdff512bfc042b8ddb Mon Sep 17 00:00:00 2001 From: Aaron Fenyes Date: Mon, 29 Sep 2025 16:30:02 -0700 Subject: [PATCH 1/4] Add twice-augmented data --- impossolid/twice-augmented | 150 ++++++++++++++++++++ impossolid/twice-augmented_edge-distortions | 98 +++++++++++++ impossolid/twice-augmented_vertices | 38 +++++ 3 files changed, 286 insertions(+) create mode 100644 impossolid/twice-augmented create mode 100644 impossolid/twice-augmented_edge-distortions create mode 100644 impossolid/twice-augmented_vertices diff --git a/impossolid/twice-augmented b/impossolid/twice-augmented new file mode 100644 index 0000000..5e0fca2 --- /dev/null +++ b/impossolid/twice-augmented @@ -0,0 +1,150 @@ +=== Distortions of flexible edges (for labels) === + +--- Range --- + +Highest: 0.000039581305103782685 +Lowest: -0.00003959022952266363 + +--- Table --- + +a_SE, b_SE: 0.000015249448583054653 +b_SW, c_S: 0.000006918255000202575 +b_SE, c_S: 0.00001022525369434997 +b_SE, c_E: 0.000010225282824746383 +b_NE, c_E: 0.000006918450075555058 +z_S, a_SW: -0.0000219346808875234 +z_S, a_SE: 0.00002021118621352795 +z_E, a_SE: 0.00002021122888534378 +z_E, a_NE: -0.00002193465480671757 +z_S, b_SW: 0.000015276737515369292 +z_S, b_SE: -0.000010771908316892743 +z_E, b_SE: -0.00001077200999765046 +z_E, b_NE: 0.000015276631362360217 +z_S, c_S: -0.0000027853351723499016 +z_E, c_E: -0.000002785228607191555 +c_N, d_NE: -0.000007632775579087326 +c_N, d_NW: 0.00001402754980516112 +c_W, d_NW: 0.000014028001282264439 +c_W, d_SW: -0.00000763316944431703 +c_S, d_SW: 0.000006566974972180328 +c_S, d_SE: -0.0000033161321458747414 +c_E, d_SE: -0.00000331586236646513 +c_E, d_NE: 0.000006566624318564243 +y_NE, b_NE: -0.0000017608392620486498 +y_NW, b_NW: -0.00003959022952266363 +y_SW, b_SW: -0.0000017608153313274316 +y_SE, b_SE: 0.000005637007821097203 +y_NE, c_N: 0.000001760310254250749 +y_NW, c_N: 0.00003958128591112948 +y_NW, c_W: 0.000039581305103782685 +y_SW, c_W: 0.0000017603065237110672 +y_SW, c_S: 0.0000017602552603493003 +y_SE, c_S: -0.00000563497752606038 +y_SE, c_E: -0.0000056349905677193694 +y_NE, c_E: 0.0000017602528935919282 +y_NE, d_NE: -0.0000017608481082635805 +y_NW, d_NW: -0.0000395891283971962 +y_SW, d_SW: -0.0000017608381747596222 +y_SE, d_SE: 0.0000056371661583272735 +d_NE, e_N: 0.000007303314580670295 +d_NW, e_N: -0.000016255656816635924 +d_NW, e_W: -0.000016256069869023512 +d_SW, e_W: 0.00000730369455466398 +d_SW, e_S: -0.000006000901856373712 +d_SE, e_S: 0.000003879307405619109 +d_SE, e_E: 0.000003879053499059208 +d_NE, e_E: -0.00000600059436381427 +c_N, e_N: 0.00000899767908293228 +c_W, e_W: 0.000008997328779446816 +c_S, e_S: 0.0000042757526759396545 +c_E, e_E: 0.000004275945999382972 +e_N, f_NE: 0.0000026971057195376348 +e_N, f_NW: 0.000006498321003978716 +e_W, f_NW: 0.000006498333167484994 +e_W, f_SW: 0.000002697065747495785 +e_S, f_SW: 0.000001359196116957704 +e_S, f_SE: 0.0000010550443264554641 +e_E, f_SE: 0.0000010550540852081317 +e_E, f_NE: 0.000001359177866673992 +d_NE, f_NE: -0.0000029405886467824407 +d_NW, f_NW: -0.000009421855439304757 +d_SW, f_SW: -0.000002940615976753832 +d_SE, f_SE: -0.000001529705558996715 +f_NE, g_ENE: -0.00000011649787286240574 +f_NE, g_NNE: -0.000002135681696645076 +f_NW, g_NNW: -0.000003607774033318148 +f_NW, g_WNW: -0.000003607785721714447 +f_SW, g_WSW: -0.0000021356459140809334 +f_SW, g_SSW: -0.00000011652747271646458 +f_SE, g_SSE: -0.0000005858121892925972 +f_SE, g_ESE: -0.0000005858113552594831 +e_N, g_NNE: -0.0000034483169191011346 +e_N, g_NNW: 0.0000034059972640161084 +e_W, g_WNW: 0.000003405934362501001 +e_W, g_WSW: -0.00000344858668736309 +e_S, g_SSW: 0.0000029689592297656908 +e_S, g_SSE: -0.0000006279732347365118 +e_E, g_ESE: -0.0000006278110244023648 +e_E, g_ENE: 0.0000029689801689897473 + +=== Distortions of rigid edges (for validation) === + +These values should be small relative to the ones for the flexible edges + +--- Range --- + +Largest absolute: 0.00000000002916368237382178 + +--- Table --- + +a_NE, a_NW: 0.000000000024039999653399018 +a_NW, a_SW: 0.00000000002451793579782236 +a_SW, a_SE: -0.000000000028570972470668657 +a_SE, a_NE: -0.00000000002916368237382178 +a_NE, b_NE: -0.000000000022712800498073622 +a_NW, b_NW: 0.0000000000010783395006240168 +a_SW, b_SW: -0.00000000002146677512286218 +b_NE, c_N: 0.00000000000907905964233893 +b_NW, c_N: -0.00000000002003437977280497 +b_NW, c_W: -0.000000000019747523880603447 +b_SW, c_W: 0.000000000009824853560213723 +g_NNE, g_NNW: 0.0000000000003400820265509057 +g_NNW, g_WNW: -0.0000000000004886127731423908 +g_WNW, g_WSW: 0.00000000000005762239323369454 +g_WSW, g_SSW: -0.00000000000020348398264541725 +g_SSW, g_SSE: -0.0000000000010258984125039788 +g_SSE, g_ESE: -0.0000000000001306316925624901 +g_ESE, g_ENE: -0.0000000000011334497459238174 +g_ENE, g_NNE: -0.00000000000007913265991766227 +a_SE, a_NW: 0.00000000001299251509560824 +a_SW, a_NE: -0.000000000019852249047597653 +a_NW, c_N: 0.00000000000757318396521532 +b_NW, b_NE: -0.000000000015613313427643198 +c_N, a_NE: -0.000000000013250324277324116 +a_NW, b_NE: 0.0000000000145795645528458 +b_NW, a_NE: 0.000000000004191204809210469 +a_SW, c_W: -0.000000000012779924576702457 +b_SW, b_NW: -0.000000000015326928563179278 +c_W, a_NW: 0.00000000000786836134744787 +a_SW, b_NW: 0.000000000004368311238549999 +b_SW, a_NW: 0.00000000001505750069726914 +g_NNE, g_WNW: 0.0000000000005718276734526309 +g_NNW, g_WSW: 0.0000000000004788781998985515 +g_WNW, g_SSW: -0.00000000000035703902510469045 +g_WSW, g_SSE: 0.0000000000002254652770669901 +g_SSW, g_ESE: -0.0000000000002515288118811408 +g_SSE, g_ENE: -0.00000000000030679606642680965 +g_NNE, g_WSW: 0.0000000000003206128800632269 +g_NNW, g_SSW: 0.00000000000032846334235664577 +g_WNW, g_SSE: 0.00000000000012278123026907122 +g_WSW, g_ESE: 0.00000000000014507654318238083 +g_SSW, g_ENE: 0.000000000000033599978615832786 +g_NNE, g_SSW: 0.0000000000001815026882238444 +g_NNW, g_SSE: 0.0000000000002631474960754007 +g_WNW, g_ESE: 0.00000000000031684465816238584 +g_WSW, g_ENE: 0.0000000000002348858318190928 +g_NNE, g_SSE: 0.00000000000007913265991766227 +g_NNW, g_ESE: 0.0000000000001438204692154338 +g_WNW, g_ENE: 0.0000000000004248670193198296 +g_NNE, g_ESE: 0.00000000000019783164979415566 +g_NNW, g_ENE: -0.0000000000002364559242777765 diff --git a/impossolid/twice-augmented_edge-distortions b/impossolid/twice-augmented_edge-distortions new file mode 100644 index 0000000..9cb5946 --- /dev/null +++ b/impossolid/twice-augmented_edge-distortions @@ -0,0 +1,98 @@ +a_SE, b_SE: 0.000015249448583054653 +b_SW, c_S: 0.000006918255000202575 +b_SE, c_S: 0.00001022525369434997 +b_SE, c_E: 0.000010225282824746383 +b_NE, c_E: 0.000006918450075555058 +z_S, a_SW: -0.0000219346808875234 +z_S, a_SE: 0.00002021118621352795 +z_E, a_SE: 0.00002021122888534378 +z_E, a_NE: -0.00002193465480671757 +z_S, b_SW: 0.000015276737515369292 +z_S, b_SE: -0.000010771908316892743 +z_E, b_SE: -0.00001077200999765046 +z_E, b_NE: 0.000015276631362360217 +z_S, c_S: -0.0000027853351723499016 +z_E, c_E: -0.000002785228607191555 +c_N, d_NE: -0.000007632775579087326 +c_N, d_NW: 0.00001402754980516112 +c_W, d_NW: 0.000014028001282264439 +c_W, d_SW: -0.00000763316944431703 +c_S, d_SW: 0.000006566974972180328 +c_S, d_SE: -0.0000033161321458747414 +c_E, d_SE: -0.00000331586236646513 +c_E, d_NE: 0.000006566624318564243 +y_NE, b_NE: -0.0000017608392620486498 +y_NW, b_NW: -0.00003959022952266363 +y_SW, b_SW: -0.0000017608153313274316 +y_SE, b_SE: 0.000005637007821097203 +y_NE, c_N: 0.000001760310254250749 +y_NW, c_N: 0.00003958128591112948 +y_NW, c_W: 0.000039581305103782685 +y_SW, c_W: 0.0000017603065237110672 +y_SW, c_S: 0.0000017602552603493003 +y_SE, c_S: -0.00000563497752606038 +y_SE, c_E: -0.0000056349905677193694 +y_NE, c_E: 0.0000017602528935919282 +y_NE, d_NE: -0.0000017608481082635805 +y_NW, d_NW: -0.0000395891283971962 +y_SW, d_SW: -0.0000017608381747596222 +y_SE, d_SE: 0.0000056371661583272735 +d_NE, e_N: 0.000007303314580670295 +d_NW, e_N: -0.000016255656816635924 +d_NW, e_W: -0.000016256069869023512 +d_SW, e_W: 0.00000730369455466398 +d_SW, e_S: -0.000006000901856373712 +d_SE, e_S: 0.000003879307405619109 +d_SE, e_E: 0.000003879053499059208 +d_NE, e_E: -0.00000600059436381427 +c_N, e_N: 0.00000899767908293228 +c_W, e_W: 0.000008997328779446816 +c_S, e_S: 0.0000042757526759396545 +c_E, e_E: 0.000004275945999382972 +e_N, f_NE: 0.0000026971057195376348 +e_N, f_NW: 0.000006498321003978716 +e_W, f_NW: 0.000006498333167484994 +e_W, f_SW: 0.000002697065747495785 +e_S, f_SW: 0.000001359196116957704 +e_S, f_SE: 0.0000010550443264554641 +e_E, f_SE: 0.0000010550540852081317 +e_E, f_NE: 0.000001359177866673992 +d_NE, f_NE: -0.0000029405886467824407 +d_NW, f_NW: -0.000009421855439304757 +d_SW, f_SW: -0.000002940615976753832 +d_SE, f_SE: -0.000001529705558996715 +f_NE, g_ENE: -0.00000011649787286240574 +f_NE, g_NNE: -0.000002135681696645076 +f_NW, g_NNW: -0.000003607774033318148 +f_NW, g_WNW: -0.000003607785721714447 +f_SW, g_WSW: -0.0000021356459140809334 +f_SW, g_SSW: -0.00000011652747271646458 +f_SE, g_SSE: -0.0000005858121892925972 +f_SE, g_ESE: -0.0000005858113552594831 +e_N, g_NNE: -0.0000034483169191011346 +e_N, g_NNW: 0.0000034059972640161084 +e_W, g_WNW: 0.000003405934362501001 +e_W, g_WSW: -0.00000344858668736309 +e_S, g_SSW: 0.0000029689592297656908 +e_S, g_SSE: -0.0000006279732347365118 +e_E, g_ESE: -0.0000006278110244023648 +e_E, g_ENE: 0.0000029689801689897473 +a_NE, a_NW +a_NW, a_SW +a_SW, a_SE +a_SE, a_NE +a_NE, b_NE +a_NW, b_NW +a_SW, b_SW +b_NE, c_N +b_NW, c_N +b_NW, c_W +b_SW, c_W +g_NNE, g_NNW +g_NNW, g_WNW +g_WNW, g_WSW +g_WSW, g_SSW +g_SSW, g_SSE +g_SSE, g_ESE +g_ESE, g_ENE +g_ENE, g_NNE diff --git a/impossolid/twice-augmented_vertices b/impossolid/twice-augmented_vertices new file mode 100644 index 0000000..ecd6206 --- /dev/null +++ b/impossolid/twice-augmented_vertices @@ -0,0 +1,38 @@ +a_NE: 0.4974660839869507, 0.5025284618118182, -0.21962917587407324 +a_NW: -0.5025160085784002, 0.5025084403663106, -0.21364467368968995 +a_SW: -0.5025317897634418, -0.4974736643225916, -0.21962716242129268 +a_SE: 0.49745030267915796, -0.4974536427543331, -0.22561166444858374 +z_S: 0.0023385661484333744, -0.22870402619169428, 0.60063190420276 +z_E: 0.22870024445875012, -0.0023413854336990325, 0.6006314485234188 +b_NE: 0.8118652156106724, 0.8061651522670251, 0.6797917189944392 +b_NW: -0.8061397981609031, 0.8061327572110616, 0.6894748470124282 +b_SW: -0.8061653323313128, -0.8118722761768307, 0.679794976829472 +b_SE: 0.8117686673287107, -0.8117688670778128, 0.6701787153604973 +y_NE: 0.1103960413184542, 0.10342511854710223, 0.798509539299725 +y_NW: -0.10337789916924411, 0.1033740688261596, 0.7998232055607494 +y_SW: -0.10342804260149929, -0.11039987437192703, 0.7985099696006345 +y_SE: 0.11038804399025821, -0.11039097027269067, 0.7972438212830046 +c_N: 0.006192472465608106, 0.9938029259455414, 1.2416489044968044 +c_W: -0.9938054007689278, -0.006199199673009326, 1.2416509179495838 +c_S: 0.006109939936188693, -1.0059122097709343, 1.229859721030557 +c_E: 1.0059097110061566, -0.00610818737102383, 1.2298577082098059 +d_NE: 0.19998199287503826, 0.18129904829618806, 1.7914377777202868 +d_NW: -0.18132979121792334, 0.1813276309223748, 1.7936881702060035 +d_SW: -0.18129959231726273, -0.19998415749541185, 1.791438545222019 +d_SE: 0.1999582803508571, -0.1999588290387209, 1.7891944479793136 +e_N: 0.011969023209503969, 1.0551851488412447, 2.239755536903205 +e_W: -1.0551855894711406, -0.011973997889437291, 2.2397576852440584 +e_S: 0.011933151451289365, -1.0790685618433953, 2.2271674919335998 +e_E: 1.0790680956836711, -0.011929083518777098, 2.2271653437223433 +f_NE: 0.29554147977141343, 0.26516582064069727, 2.7833192564200235 +f_NW: -0.26515631709994025, 0.26515579997276006, 2.786626792661052 +f_SW: -0.26516396217611815, -0.2955420036217133, 2.783320385102162 +f_SE: 0.2955327295186172, -0.29553087779401516, 2.780016555503281 +g_NNE: 0.5169980642139731, 1.1901085117178565, 3.092242755151354 +g_NNW: -0.4829845300027995, 1.1900889935835326, 3.0981428299427223 +g_WNW: -1.190089809078002, 0.4829807102891247, 3.0981442533320376 +g_WSW: -1.1901050905533348, -0.5170018958762016, 3.0922461915171433 +g_SSW: -0.48302142275001, -1.2240825763590955, 3.083903649106097 +g_SSE: 0.516961171466923, -1.224063058223441, 3.0780035743129184 +g_ESE: 1.224066450541603, -0.516954774929556, 3.078002150923603 +g_ENE: 1.2240817320182662, 0.4830278312359312, 3.083900212740308 \ No newline at end of file From 5b331dbbeea2357b787e7877828b318f55e59ad8 Mon Sep 17 00:00:00 2001 From: Aaron Fenyes Date: Mon, 29 Sep 2025 16:31:36 -0700 Subject: [PATCH 2/4] Calculate angle distortions --- impossolid/angle-distortion.py | 59 ++++ impossolid/twice-augmented_angle-distortions | 295 +++++++++++++++++++ 2 files changed, 354 insertions(+) create mode 100644 impossolid/angle-distortion.py create mode 100644 impossolid/twice-augmented_angle-distortions diff --git a/impossolid/angle-distortion.py b/impossolid/angle-distortion.py new file mode 100644 index 0000000..6a19cfc --- /dev/null +++ b/impossolid/angle-distortion.py @@ -0,0 +1,59 @@ +import collections +import math +import sys + +def read_edge_distortions(filename): + vertices = set() + distortions = {} + with open(filename, 'r') as edge_file: + while edge_line := edge_file.readline(): + line_parts = edge_line.rstrip().split(': ') + endpoints = tuple(sorted(line_parts[0].split(', '))) + vertices.update(endpoints) + if len(line_parts) > 1: + distortions[endpoints] = float(line_parts[1]) + else: + distortions[endpoints] = 0 + return (vertices, distortions) + +def find_triangles(vertices, edges): + triangles = [] + for e in edges: + for v in vertices: + if e[1] < v: + if (e[0], v) in edges and (e[1], v) in edges: + triangles.append((e[0], e[1], v)) + return triangles + +# use the law of cosines to get the angle distortion +def angle_distortion(edge_distortions): + a, b, c = list(edge_distortions) + cos_angle_a = (1 + 2*(b + c - a) + b*b + c*c - a*a) / (2*(1 + b)*(1 + c)) + return math.degrees(math.acos(cos_angle_a)) - 60 + +if __name__ == '__main__': + if len(sys.argv) <= 1: + print('Pass the path to the file that lists the edge distortions') + else: + vertices, distortions = read_edge_distortions(sys.argv[1]) + triangles = find_triangles(vertices, distortions.keys()) + total_angle_distortion = 0 + highest_angle_distortion = -math.inf + lowest_angle_distortion = math.inf + print('{} triangles\n'.format(len(triangles))) + for t in triangles: + print('Triangle {0}, {1}, {2}'.format(t[0], t[1], t[2])) + edge_distortions = collections.deque( + [distortions[(t[j], t[k])] for (j, k) in [(1, 2), (0, 2), (0, 1)]] + ) + for k in range(3): + ang_distort = angle_distortion(edge_distortions) + total_angle_distortion += abs(ang_distort) + highest_angle_distortion = max(highest_angle_distortion, ang_distort) + lowest_angle_distortion = min(lowest_angle_distortion, ang_distort) + print(' {0}: {1}°'.format(t[k], ang_distort)) + edge_distortions.rotate() + print() + print('Total angle distortion: {}°'.format(total_angle_distortion)) + print('Highest angle distortion: {}°'.format(highest_angle_distortion)) + print('Lowest angle distortion: {}°'.format(lowest_angle_distortion)) diff --git a/impossolid/twice-augmented_angle-distortions b/impossolid/twice-augmented_angle-distortions new file mode 100644 index 0000000..cf03128 --- /dev/null +++ b/impossolid/twice-augmented_angle-distortions @@ -0,0 +1,295 @@ +58 triangles + +Triangle a_SE, b_SE, z_S + a_SE: -0.0018856502946889009° + b_SE: 0.0006966207168233041° + z_S: 0.0011890295778727022° + +Triangle a_SE, b_SE, z_E + a_SE: -0.0018856584331388149° + b_SE: 0.0006966226686131449° + z_E: 0.0011890357645540917° + +Triangle b_SW, c_S, y_SW + b_SW: -5.415090214455631e-05° + c_S: 0.00045772681384903535° + y_SW: -0.00040357591168316276° + +Triangle b_SW, c_S, z_S + b_SW: -0.0009184701495854597° + c_S: 4.448743641916053e-05° + z_S: 0.00087398271318051° + +Triangle b_SE, c_S, z_S + b_SE: -0.00016620401637368332° + c_S: 0.0011249765751415453° + z_S: -0.0009587725587678619° + +Triangle b_SE, c_S, y_SE + b_SE: -0.0008975178741081891° + c_S: 0.0006764281771083347° + y_SE: 0.00022108969701406522° + +Triangle b_SE, c_E, y_SE + b_SE: -0.000897519700536975° + c_E: 0.0006764305357691569° + y_SE: 0.0002210891647536073° + +Triangle b_SE, c_E, z_E + b_SE: -0.0001661945662831954° + c_E: 0.0011249783407549785° + z_E: -0.0009587837744717831° + +Triangle b_NE, c_E, y_NE + b_NE: -5.4156720231901545e-05° + c_E: 0.00045774058987291255° + y_NE: -0.00040358386964811643° + +Triangle b_NE, c_E, z_E + b_NE: -0.0009184660407299816° + c_E: 4.450032897551637e-05° + z_E: 0.0008739657117544652° + +Triangle c_N, d_NE, y_NE + c_N: 7.77608707309696e-05° + d_NE: -0.0005049622408037635° + y_NE: 0.0004272013700656885° + +Triangle c_N, d_NE, e_N + c_N: 0.00043802608161769285° + d_NE: -0.0010442017109895119° + e_N: 0.0006061756293931353° + +Triangle c_N, d_NW, y_NW + c_N: -0.004392411525167006° + d_NW: 0.0009281613228964147° + y_NW: 0.0034642502022776966° + +Triangle c_N, d_NW, e_N + c_N: -0.0018371050143599632° + d_NW: 0.0011681390506907974° + e_N: 0.0006689659636691658° + +Triangle c_W, d_NW, e_W + c_W: -0.0018371356879498535° + d_NW: 0.0011681941726706668° + e_W: 0.0006689415152791867° + +Triangle c_W, d_NW, y_NW + c_W: -0.00439242709246912° + d_NW: 0.000928190557552° + y_NW: 0.00346423653491712° + +Triangle c_W, d_SW, e_W + c_W: 0.0004380758375859273° + d_SW: -0.0010442287499685676° + e_W: 0.0006061529123826404° + +Triangle c_W, d_SW, y_SW + c_W: 7.777468017877709e-05° + d_SW: -0.0005049885038488355° + y_SW: 0.00042721382367005845° + +Triangle c_S, d_SW, y_SW + c_S: -0.0003919572288921813° + d_SW: 0.00043448701768511455° + y_SW: -4.252978876451152e-05° + +Triangle c_S, d_SW, e_S + c_S: -0.0007556856092989506° + d_SW: 0.0004915334549480121° + e_S: 0.0002641521543509384° + +Triangle c_S, d_SE, y_SE + c_S: 0.0006690562241331577° + d_SE: -0.00021946896695368423° + y_SE: -0.000449587257172368° + +Triangle c_S, d_SE, e_S + c_S: 0.00022490750998827025° + d_SE: -0.0004891581593469141° + e_S: 0.00026425064935864384° + +Triangle c_E, d_SE, y_SE + c_E: 0.0006690477311224186° + d_SE: -0.000219450687097833° + y_SE: -0.0004495970440387964° + +Triangle c_E, d_SE, e_E + c_E: 0.00022487539229842923° + d_SE: -0.0004891383069605126° + e_E: 0.000264262914654978° + +Triangle c_E, d_NE, y_NE + c_E: -0.0003919462083246117° + d_NE: 0.00043446422546367103° + y_NE: -4.2518017124848484e-05° + +Triangle c_E, d_NE, e_E + c_E: -0.0007556600615572506° + d_NE: 0.0004914936888269494° + e_E: 0.0002641663727089849° + +Triangle d_NE, e_N, f_NE + d_NE: 3.4118590889420375e-05° + e_N: 0.0004912376328576329° + f_NE: -0.0005253562237612641° + +Triangle d_NW, e_N, f_NW + d_NW: 0.0012793501149417352° + e_N: -0.0009787611630969195° + f_NW: -0.0003005889518448157° + +Triangle d_NW, e_W, f_NW + d_NW: 0.0012793645837376744° + e_W: -0.0009787888926879873° + f_NW: -0.00030057569104258164° + +Triangle d_SW, e_W, f_SW + d_SW: 3.4104280807412124e-05° + e_W: 0.0004912649981676509° + f_SW: -0.0005253692789679576° + +Triangle d_SW, e_S, f_SW + d_SW: 0.0003857085871175059° + e_S: -0.00034470395510055596° + f_SW: -4.10046320098445e-05° + +Triangle d_SE, e_S, f_SE + d_SE: -7.92374907376825e-06° + e_S: 0.0002723546649647801° + f_SE: -0.00026443091589101186° + +Triangle d_SE, e_E, f_SE + d_SE: -7.914704212907964e-06° + e_E: 0.0002723375437980735° + f_SE: -0.00026442283958516555° + +Triangle d_NE, e_E, f_NE + d_NE: 0.00038569630375207° + e_E: -0.0003446839119192191° + f_NE: -4.1012391825745453e-05° + +Triangle e_N, f_NE, g_NNE + e_N: -0.00011644664380128233° + f_NE: 0.000363157568820327° + g_NNE: -0.0002467109250190447° + +Triangle e_N, f_NW, g_NNW + e_N: -0.0005663172445693476° + f_NW: 0.000436599482547706° + g_NNW: 0.00012971776202874707° + +Triangle e_W, f_NW, g_WNW + e_W: -0.0005663163395084325° + f_NW: 0.00043660275473200727° + g_WNW: 0.00012971358477642525° + +Triangle e_W, f_SW, g_WSW + e_W: -0.00011643403040295652° + f_SW: 0.0003631626645272945° + g_WSW: -0.000246728634124338° + +Triangle e_S, f_SW, g_SSW + e_S: -0.00015088330234647174° + f_SW: -4.434221558824447e-06° + g_SSW: 0.00015531752390529618° + +Triangle e_S, f_SE, g_SSE + e_S: -5.28844724030364e-05° + f_SE: 0.00010995296653959485° + g_SSE: -5.706849415076931e-05° + +Triangle e_E, f_SE, g_ESE + e_E: -5.289010589137888e-05° + f_SE: 0.00010994821870013993° + g_ESE: -5.705811280876105e-05° + +Triangle e_E, f_NE, g_ENE + e_E: -0.00015088143299379908° + f_NE: -4.437100798782012e-06° + g_ENE: 0.0001553185337925811° + +Triangle f_NE, g_ENE, g_NNE + f_NE: 7.450149718835064e-05° + g_ENE: 6.294030865205968e-05° + g_NNE: -0.00013744180584041032° + +Triangle f_NW, g_NNW, g_WNW + f_NW: 0.00023868980004237983° + g_NNW: -0.00011934432004778728° + g_WNW: -0.00011934547999459255° + +Triangle f_SW, g_SSW, g_WSW + f_SW: 7.450129267994043e-05° + g_SSW: 6.293716665339844e-05° + g_WSW: -0.00013743845931912801° + +Triangle f_SE, g_ESE, g_SSE + f_SE: 3.87570213717936e-05° + g_ESE: -1.937846930388787e-05° + g_SSE: -1.9378552060800303e-05° + +Triangle e_N, g_NNE, g_NNW + e_N: 1.3987573481699656e-06° + g_NNE: -0.00034080770834776786° + g_NNW: 0.0003394089509995979° + +Triangle e_W, g_WNW, g_WSW + e_W: 1.4097619143171869e-06° + g_WNW: 0.0003394137133483355° + g_WSW: -0.00034082347526265266° + +Triangle e_S, g_SSE, g_SSW + e_S: -7.743940860649445e-05° + g_SSE: -0.00013975871755889102° + g_SSW: 0.00021719812617959633° + +Triangle e_E, g_ENE, g_ESE + e_E: -7.744546709176348e-05° + g_ENE: 0.0002171941456126092° + g_ESE: -0.000139748678492424° + +Triangle a_SE, a_SW, z_S + a_SE: -0.0021197448587955137° + a_SW: 5.696873318328244e-05° + z_S: 0.0020627761256122312° + +Triangle a_NE, a_SE, z_E + a_NE: 0.0020627780860564826° + a_SE: 5.696645881414497e-05° + z_E: -0.0021197445448706276° + +Triangle a_NE, b_NE, z_E + a_NE: 0.0017363010366011622° + b_NE: 0.00022021214437017989° + z_E: -0.001956513180971342° + +Triangle a_SW, b_SW, z_S + a_SW: 0.0017363089225312933° + b_SW: 0.00022020949535317413° + z_S: -0.001956518417863151° + +Triangle b_NE, c_N, y_NE + b_NE: 0.00017470943667774463° + c_N: 1.7191837287100498e-08° + y_NE: -0.0001747266285079263° + +Triangle b_NW, c_N, y_NW + b_NW: 0.003928388803437599° + c_N: 1.4034125683792809e-07° + y_NW: -0.0039285291447015425° + +Triangle b_NW, c_W, y_NW + b_NW: 0.0039283900732698385° + c_W: 1.3970630163839814e-07° + y_NW: -0.0039285297795643714° + +Triangle b_SW, c_W, y_SW + b_SW: 0.00017470839824795803° + c_W: 1.6523628687536984e-08° + y_SW: -0.0001747249218624347° + +Total angle distortion: 0.11233054610809035° +Highest angle distortion: 0.0039283900732698385° +Lowest angle distortion: -0.00439242709246912° From a309870968edc389a8514e22206a668f8a3c809e Mon Sep 17 00:00:00 2001 From: Aaron Fenyes Date: Mon, 29 Sep 2025 17:12:24 -0700 Subject: [PATCH 3/4] Fix the order of the triangle list I've confirmed that this commit's output matches the previous commit's up to ordering. --- impossolid/angle-distortion.py | 4 +- impossolid/twice-augmented_angle-distortions | 358 +++++++++---------- 2 files changed, 181 insertions(+), 181 deletions(-) diff --git a/impossolid/angle-distortion.py b/impossolid/angle-distortion.py index 6a19cfc..6d600d3 100644 --- a/impossolid/angle-distortion.py +++ b/impossolid/angle-distortion.py @@ -18,8 +18,8 @@ def read_edge_distortions(filename): def find_triangles(vertices, edges): triangles = [] - for e in edges: - for v in vertices: + for e in sorted(edges): + for v in sorted(vertices): if e[1] < v: if (e[0], v) in edges and (e[1], v) in edges: triangles.append((e[0], e[1], v)) diff --git a/impossolid/twice-augmented_angle-distortions b/impossolid/twice-augmented_angle-distortions index cf03128..2a11203 100644 --- a/impossolid/twice-augmented_angle-distortions +++ b/impossolid/twice-augmented_angle-distortions @@ -1,44 +1,34 @@ 58 triangles -Triangle a_SE, b_SE, z_S - a_SE: -0.0018856502946889009° - b_SE: 0.0006966207168233041° - z_S: 0.0011890295778727022° +Triangle a_NE, a_SE, z_E + a_NE: 0.0020627780860564826° + a_SE: 5.696645881414497e-05° + z_E: -0.0021197445448706276° + +Triangle a_NE, b_NE, z_E + a_NE: 0.0017363010366011622° + b_NE: 0.00022021214437017989° + z_E: -0.001956513180971342° + +Triangle a_SE, a_SW, z_S + a_SE: -0.0021197448587955137° + a_SW: 5.696873318328244e-05° + z_S: 0.0020627761256122312° Triangle a_SE, b_SE, z_E a_SE: -0.0018856584331388149° b_SE: 0.0006966226686131449° z_E: 0.0011890357645540917° -Triangle b_SW, c_S, y_SW - b_SW: -5.415090214455631e-05° - c_S: 0.00045772681384903535° - y_SW: -0.00040357591168316276° +Triangle a_SE, b_SE, z_S + a_SE: -0.0018856502946889009° + b_SE: 0.0006966207168233041° + z_S: 0.0011890295778727022° -Triangle b_SW, c_S, z_S - b_SW: -0.0009184701495854597° - c_S: 4.448743641916053e-05° - z_S: 0.00087398271318051° - -Triangle b_SE, c_S, z_S - b_SE: -0.00016620401637368332° - c_S: 0.0011249765751415453° - z_S: -0.0009587725587678619° - -Triangle b_SE, c_S, y_SE - b_SE: -0.0008975178741081891° - c_S: 0.0006764281771083347° - y_SE: 0.00022108969701406522° - -Triangle b_SE, c_E, y_SE - b_SE: -0.000897519700536975° - c_E: 0.0006764305357691569° - y_SE: 0.0002210891647536073° - -Triangle b_SE, c_E, z_E - b_SE: -0.0001661945662831954° - c_E: 0.0011249783407549785° - z_E: -0.0009587837744717831° +Triangle a_SW, b_SW, z_S + a_SW: 0.0017363089225312933° + b_SW: 0.00022020949535317413° + z_S: -0.001956518417863151° Triangle b_NE, c_E, y_NE b_NE: -5.4156720231901545e-05° @@ -50,26 +40,116 @@ Triangle b_NE, c_E, z_E c_E: 4.450032897551637e-05° z_E: 0.0008739657117544652° -Triangle c_N, d_NE, y_NE - c_N: 7.77608707309696e-05° - d_NE: -0.0005049622408037635° - y_NE: 0.0004272013700656885° +Triangle b_NE, c_N, y_NE + b_NE: 0.00017470943667774463° + c_N: 1.7191837287100498e-08° + y_NE: -0.0001747266285079263° + +Triangle b_NW, c_N, y_NW + b_NW: 0.003928388803437599° + c_N: 1.4034125683792809e-07° + y_NW: -0.0039285291447015425° + +Triangle b_NW, c_W, y_NW + b_NW: 0.0039283900732698385° + c_W: 1.3970630163839814e-07° + y_NW: -0.0039285297795643714° + +Triangle b_SE, c_E, y_SE + b_SE: -0.000897519700536975° + c_E: 0.0006764305357691569° + y_SE: 0.0002210891647536073° + +Triangle b_SE, c_E, z_E + b_SE: -0.0001661945662831954° + c_E: 0.0011249783407549785° + z_E: -0.0009587837744717831° + +Triangle b_SE, c_S, y_SE + b_SE: -0.0008975178741081891° + c_S: 0.0006764281771083347° + y_SE: 0.00022108969701406522° + +Triangle b_SE, c_S, z_S + b_SE: -0.00016620401637368332° + c_S: 0.0011249765751415453° + z_S: -0.0009587725587678619° + +Triangle b_SW, c_S, y_SW + b_SW: -5.415090214455631e-05° + c_S: 0.00045772681384903535° + y_SW: -0.00040357591168316276° + +Triangle b_SW, c_S, z_S + b_SW: -0.0009184701495854597° + c_S: 4.448743641916053e-05° + z_S: 0.00087398271318051° + +Triangle b_SW, c_W, y_SW + b_SW: 0.00017470839824795803° + c_W: 1.6523628687536984e-08° + y_SW: -0.0001747249218624347° + +Triangle c_E, d_NE, e_E + c_E: -0.0007556600615572506° + d_NE: 0.0004914936888269494° + e_E: 0.0002641663727089849° + +Triangle c_E, d_NE, y_NE + c_E: -0.0003919462083246117° + d_NE: 0.00043446422546367103° + y_NE: -4.2518017124848484e-05° + +Triangle c_E, d_SE, e_E + c_E: 0.00022487539229842923° + d_SE: -0.0004891383069605126° + e_E: 0.000264262914654978° + +Triangle c_E, d_SE, y_SE + c_E: 0.0006690477311224186° + d_SE: -0.000219450687097833° + y_SE: -0.0004495970440387964° Triangle c_N, d_NE, e_N c_N: 0.00043802608161769285° d_NE: -0.0010442017109895119° e_N: 0.0006061756293931353° -Triangle c_N, d_NW, y_NW - c_N: -0.004392411525167006° - d_NW: 0.0009281613228964147° - y_NW: 0.0034642502022776966° +Triangle c_N, d_NE, y_NE + c_N: 7.77608707309696e-05° + d_NE: -0.0005049622408037635° + y_NE: 0.0004272013700656885° Triangle c_N, d_NW, e_N c_N: -0.0018371050143599632° d_NW: 0.0011681390506907974° e_N: 0.0006689659636691658° +Triangle c_N, d_NW, y_NW + c_N: -0.004392411525167006° + d_NW: 0.0009281613228964147° + y_NW: 0.0034642502022776966° + +Triangle c_S, d_SE, e_S + c_S: 0.00022490750998827025° + d_SE: -0.0004891581593469141° + e_S: 0.00026425064935864384° + +Triangle c_S, d_SE, y_SE + c_S: 0.0006690562241331577° + d_SE: -0.00021946896695368423° + y_SE: -0.000449587257172368° + +Triangle c_S, d_SW, e_S + c_S: -0.0007556856092989506° + d_SW: 0.0004915334549480121° + e_S: 0.0002641521543509384° + +Triangle c_S, d_SW, y_SW + c_S: -0.0003919572288921813° + d_SW: 0.00043448701768511455° + y_SW: -4.252978876451152e-05° + Triangle c_W, d_NW, e_W c_W: -0.0018371356879498535° d_NW: 0.0011681941726706668° @@ -90,45 +170,10 @@ Triangle c_W, d_SW, y_SW d_SW: -0.0005049885038488355° y_SW: 0.00042721382367005845° -Triangle c_S, d_SW, y_SW - c_S: -0.0003919572288921813° - d_SW: 0.00043448701768511455° - y_SW: -4.252978876451152e-05° - -Triangle c_S, d_SW, e_S - c_S: -0.0007556856092989506° - d_SW: 0.0004915334549480121° - e_S: 0.0002641521543509384° - -Triangle c_S, d_SE, y_SE - c_S: 0.0006690562241331577° - d_SE: -0.00021946896695368423° - y_SE: -0.000449587257172368° - -Triangle c_S, d_SE, e_S - c_S: 0.00022490750998827025° - d_SE: -0.0004891581593469141° - e_S: 0.00026425064935864384° - -Triangle c_E, d_SE, y_SE - c_E: 0.0006690477311224186° - d_SE: -0.000219450687097833° - y_SE: -0.0004495970440387964° - -Triangle c_E, d_SE, e_E - c_E: 0.00022487539229842923° - d_SE: -0.0004891383069605126° - e_E: 0.000264262914654978° - -Triangle c_E, d_NE, y_NE - c_E: -0.0003919462083246117° - d_NE: 0.00043446422546367103° - y_NE: -4.2518017124848484e-05° - -Triangle c_E, d_NE, e_E - c_E: -0.0007556600615572506° - d_NE: 0.0004914936888269494° - e_E: 0.0002641663727089849° +Triangle d_NE, e_E, f_NE + d_NE: 0.00038569630375207° + e_E: -0.0003446839119192191° + f_NE: -4.1012391825745453e-05° Triangle d_NE, e_N, f_NE d_NE: 3.4118590889420375e-05° @@ -145,30 +190,40 @@ Triangle d_NW, e_W, f_NW e_W: -0.0009787888926879873° f_NW: -0.00030057569104258164° -Triangle d_SW, e_W, f_SW - d_SW: 3.4104280807412124e-05° - e_W: 0.0004912649981676509° - f_SW: -0.0005253692789679576° - -Triangle d_SW, e_S, f_SW - d_SW: 0.0003857085871175059° - e_S: -0.00034470395510055596° - f_SW: -4.10046320098445e-05° +Triangle d_SE, e_E, f_SE + d_SE: -7.914704212907964e-06° + e_E: 0.0002723375437980735° + f_SE: -0.00026442283958516555° Triangle d_SE, e_S, f_SE d_SE: -7.92374907376825e-06° e_S: 0.0002723546649647801° f_SE: -0.00026443091589101186° -Triangle d_SE, e_E, f_SE - d_SE: -7.914704212907964e-06° - e_E: 0.0002723375437980735° - f_SE: -0.00026442283958516555° +Triangle d_SW, e_S, f_SW + d_SW: 0.0003857085871175059° + e_S: -0.00034470395510055596° + f_SW: -4.10046320098445e-05° -Triangle d_NE, e_E, f_NE - d_NE: 0.00038569630375207° - e_E: -0.0003446839119192191° - f_NE: -4.1012391825745453e-05° +Triangle d_SW, e_W, f_SW + d_SW: 3.4104280807412124e-05° + e_W: 0.0004912649981676509° + f_SW: -0.0005253692789679576° + +Triangle e_E, f_NE, g_ENE + e_E: -0.00015088143299379908° + f_NE: -4.437100798782012e-06° + g_ENE: 0.0001553185337925811° + +Triangle e_E, f_SE, g_ESE + e_E: -5.289010589137888e-05° + f_SE: 0.00010994821870013993° + g_ESE: -5.705811280876105e-05° + +Triangle e_E, g_ENE, g_ESE + e_E: -7.744546709176348e-05° + g_ENE: 0.0002171941456126092° + g_ESE: -0.000139748678492424° Triangle e_N, f_NE, g_NNE e_N: -0.00011644664380128233° @@ -180,6 +235,26 @@ Triangle e_N, f_NW, g_NNW f_NW: 0.000436599482547706° g_NNW: 0.00012971776202874707° +Triangle e_N, g_NNE, g_NNW + e_N: 1.3987573481699656e-06° + g_NNE: -0.00034080770834776786° + g_NNW: 0.0003394089509995979° + +Triangle e_S, f_SE, g_SSE + e_S: -5.28844724030364e-05° + f_SE: 0.00010995296653959485° + g_SSE: -5.706849415076931e-05° + +Triangle e_S, f_SW, g_SSW + e_S: -0.00015088330234647174° + f_SW: -4.434221558824447e-06° + g_SSW: 0.00015531752390529618° + +Triangle e_S, g_SSE, g_SSW + e_S: -7.743940860649445e-05° + g_SSE: -0.00013975871755889102° + g_SSW: 0.00021719812617959633° + Triangle e_W, f_NW, g_WNW e_W: -0.0005663163395084325° f_NW: 0.00043660275473200727° @@ -190,25 +265,10 @@ Triangle e_W, f_SW, g_WSW f_SW: 0.0003631626645272945° g_WSW: -0.000246728634124338° -Triangle e_S, f_SW, g_SSW - e_S: -0.00015088330234647174° - f_SW: -4.434221558824447e-06° - g_SSW: 0.00015531752390529618° - -Triangle e_S, f_SE, g_SSE - e_S: -5.28844724030364e-05° - f_SE: 0.00010995296653959485° - g_SSE: -5.706849415076931e-05° - -Triangle e_E, f_SE, g_ESE - e_E: -5.289010589137888e-05° - f_SE: 0.00010994821870013993° - g_ESE: -5.705811280876105e-05° - -Triangle e_E, f_NE, g_ENE - e_E: -0.00015088143299379908° - f_NE: -4.437100798782012e-06° - g_ENE: 0.0001553185337925811° +Triangle e_W, g_WNW, g_WSW + e_W: 1.4097619143171869e-06° + g_WNW: 0.0003394137133483355° + g_WSW: -0.00034082347526265266° Triangle f_NE, g_ENE, g_NNE f_NE: 7.450149718835064e-05° @@ -220,75 +280,15 @@ Triangle f_NW, g_NNW, g_WNW g_NNW: -0.00011934432004778728° g_WNW: -0.00011934547999459255° -Triangle f_SW, g_SSW, g_WSW - f_SW: 7.450129267994043e-05° - g_SSW: 6.293716665339844e-05° - g_WSW: -0.00013743845931912801° - Triangle f_SE, g_ESE, g_SSE f_SE: 3.87570213717936e-05° g_ESE: -1.937846930388787e-05° g_SSE: -1.9378552060800303e-05° -Triangle e_N, g_NNE, g_NNW - e_N: 1.3987573481699656e-06° - g_NNE: -0.00034080770834776786° - g_NNW: 0.0003394089509995979° - -Triangle e_W, g_WNW, g_WSW - e_W: 1.4097619143171869e-06° - g_WNW: 0.0003394137133483355° - g_WSW: -0.00034082347526265266° - -Triangle e_S, g_SSE, g_SSW - e_S: -7.743940860649445e-05° - g_SSE: -0.00013975871755889102° - g_SSW: 0.00021719812617959633° - -Triangle e_E, g_ENE, g_ESE - e_E: -7.744546709176348e-05° - g_ENE: 0.0002171941456126092° - g_ESE: -0.000139748678492424° - -Triangle a_SE, a_SW, z_S - a_SE: -0.0021197448587955137° - a_SW: 5.696873318328244e-05° - z_S: 0.0020627761256122312° - -Triangle a_NE, a_SE, z_E - a_NE: 0.0020627780860564826° - a_SE: 5.696645881414497e-05° - z_E: -0.0021197445448706276° - -Triangle a_NE, b_NE, z_E - a_NE: 0.0017363010366011622° - b_NE: 0.00022021214437017989° - z_E: -0.001956513180971342° - -Triangle a_SW, b_SW, z_S - a_SW: 0.0017363089225312933° - b_SW: 0.00022020949535317413° - z_S: -0.001956518417863151° - -Triangle b_NE, c_N, y_NE - b_NE: 0.00017470943667774463° - c_N: 1.7191837287100498e-08° - y_NE: -0.0001747266285079263° - -Triangle b_NW, c_N, y_NW - b_NW: 0.003928388803437599° - c_N: 1.4034125683792809e-07° - y_NW: -0.0039285291447015425° - -Triangle b_NW, c_W, y_NW - b_NW: 0.0039283900732698385° - c_W: 1.3970630163839814e-07° - y_NW: -0.0039285297795643714° - -Triangle b_SW, c_W, y_SW - b_SW: 0.00017470839824795803° - c_W: 1.6523628687536984e-08° - y_SW: -0.0001747249218624347° +Triangle f_SW, g_SSW, g_WSW + f_SW: 7.450129267994043e-05° + g_SSW: 6.293716665339844e-05° + g_WSW: -0.00013743845931912801° Total angle distortion: 0.11233054610809035° Highest angle distortion: 0.0039283900732698385° From de4c2ef4821b480fec72f1056c076670f15dc991 Mon Sep 17 00:00:00 2001 From: Aaron Fenyes Date: Mon, 29 Sep 2025 17:37:17 -0700 Subject: [PATCH 4/4] Correct mixed-up angles The angle distortions at the second and third vertices in each triangle seem to have been mixed up in the previous commit. I've checked, for a few triangles, that the output of this commit is consistent with the law of sines. --- impossolid/angle-distortion.py | 2 +- impossolid/twice-augmented_angle-distortions | 232 +++++++++---------- 2 files changed, 117 insertions(+), 117 deletions(-) diff --git a/impossolid/angle-distortion.py b/impossolid/angle-distortion.py index 6d600d3..084a231 100644 --- a/impossolid/angle-distortion.py +++ b/impossolid/angle-distortion.py @@ -44,7 +44,7 @@ if __name__ == '__main__': for t in triangles: print('Triangle {0}, {1}, {2}'.format(t[0], t[1], t[2])) edge_distortions = collections.deque( - [distortions[(t[j], t[k])] for (j, k) in [(1, 2), (0, 2), (0, 1)]] + [distortions[(t[j], t[k])] for (j, k) in [(1, 2), (0, 1), (0, 2)]] ) for k in range(3): ang_distort = angle_distortion(edge_distortions) diff --git a/impossolid/twice-augmented_angle-distortions b/impossolid/twice-augmented_angle-distortions index 2a11203..07ffffc 100644 --- a/impossolid/twice-augmented_angle-distortions +++ b/impossolid/twice-augmented_angle-distortions @@ -2,293 +2,293 @@ Triangle a_NE, a_SE, z_E a_NE: 0.0020627780860564826° - a_SE: 5.696645881414497e-05° - z_E: -0.0021197445448706276° + a_SE: -0.0021197445448706276° + z_E: 5.696645881414497e-05° Triangle a_NE, b_NE, z_E a_NE: 0.0017363010366011622° - b_NE: 0.00022021214437017989° - z_E: -0.001956513180971342° + b_NE: -0.001956513180971342° + z_E: 0.00022021214437017989° Triangle a_SE, a_SW, z_S a_SE: -0.0021197448587955137° - a_SW: 5.696873318328244e-05° - z_S: 0.0020627761256122312° + a_SW: 0.0020627761256122312° + z_S: 5.696873318328244e-05° Triangle a_SE, b_SE, z_E a_SE: -0.0018856584331388149° - b_SE: 0.0006966226686131449° - z_E: 0.0011890357645540917° + b_SE: 0.0011890357645540917° + z_E: 0.0006966226686131449° Triangle a_SE, b_SE, z_S a_SE: -0.0018856502946889009° - b_SE: 0.0006966207168233041° - z_S: 0.0011890295778727022° + b_SE: 0.0011890295778727022° + z_S: 0.0006966207168233041° Triangle a_SW, b_SW, z_S a_SW: 0.0017363089225312933° - b_SW: 0.00022020949535317413° - z_S: -0.001956518417863151° + b_SW: -0.001956518417863151° + z_S: 0.00022020949535317413° Triangle b_NE, c_E, y_NE b_NE: -5.4156720231901545e-05° - c_E: 0.00045774058987291255° - y_NE: -0.00040358386964811643° + c_E: -0.00040358386964811643° + y_NE: 0.00045774058987291255° Triangle b_NE, c_E, z_E b_NE: -0.0009184660407299816° - c_E: 4.450032897551637e-05° - z_E: 0.0008739657117544652° + c_E: 0.0008739657117544652° + z_E: 4.450032897551637e-05° Triangle b_NE, c_N, y_NE b_NE: 0.00017470943667774463° - c_N: 1.7191837287100498e-08° - y_NE: -0.0001747266285079263° + c_N: -0.0001747266285079263° + y_NE: 1.7191837287100498e-08° Triangle b_NW, c_N, y_NW b_NW: 0.003928388803437599° - c_N: 1.4034125683792809e-07° - y_NW: -0.0039285291447015425° + c_N: -0.0039285291447015425° + y_NW: 1.4034125683792809e-07° Triangle b_NW, c_W, y_NW b_NW: 0.0039283900732698385° - c_W: 1.3970630163839814e-07° - y_NW: -0.0039285297795643714° + c_W: -0.0039285297795643714° + y_NW: 1.3970630163839814e-07° Triangle b_SE, c_E, y_SE b_SE: -0.000897519700536975° - c_E: 0.0006764305357691569° - y_SE: 0.0002210891647536073° + c_E: 0.0002210891647536073° + y_SE: 0.0006764305357691569° Triangle b_SE, c_E, z_E b_SE: -0.0001661945662831954° - c_E: 0.0011249783407549785° - z_E: -0.0009587837744717831° + c_E: -0.0009587837744717831° + z_E: 0.0011249783407549785° Triangle b_SE, c_S, y_SE b_SE: -0.0008975178741081891° - c_S: 0.0006764281771083347° - y_SE: 0.00022108969701406522° + c_S: 0.00022108969701406522° + y_SE: 0.0006764281771083347° Triangle b_SE, c_S, z_S b_SE: -0.00016620401637368332° - c_S: 0.0011249765751415453° - z_S: -0.0009587725587678619° + c_S: -0.0009587725587678619° + z_S: 0.0011249765751415453° Triangle b_SW, c_S, y_SW b_SW: -5.415090214455631e-05° - c_S: 0.00045772681384903535° - y_SW: -0.00040357591168316276° + c_S: -0.00040357591168316276° + y_SW: 0.00045772681384903535° Triangle b_SW, c_S, z_S b_SW: -0.0009184701495854597° - c_S: 4.448743641916053e-05° - z_S: 0.00087398271318051° + c_S: 0.00087398271318051° + z_S: 4.448743641916053e-05° Triangle b_SW, c_W, y_SW b_SW: 0.00017470839824795803° - c_W: 1.6523628687536984e-08° - y_SW: -0.0001747249218624347° + c_W: -0.0001747249218624347° + y_SW: 1.6523628687536984e-08° Triangle c_E, d_NE, e_E c_E: -0.0007556600615572506° - d_NE: 0.0004914936888269494° - e_E: 0.0002641663727089849° + d_NE: 0.0002641663727089849° + e_E: 0.0004914936888269494° Triangle c_E, d_NE, y_NE c_E: -0.0003919462083246117° - d_NE: 0.00043446422546367103° - y_NE: -4.2518017124848484e-05° + d_NE: -4.2518017124848484e-05° + y_NE: 0.00043446422546367103° Triangle c_E, d_SE, e_E c_E: 0.00022487539229842923° - d_SE: -0.0004891383069605126° - e_E: 0.000264262914654978° + d_SE: 0.000264262914654978° + e_E: -0.0004891383069605126° Triangle c_E, d_SE, y_SE c_E: 0.0006690477311224186° - d_SE: -0.000219450687097833° - y_SE: -0.0004495970440387964° + d_SE: -0.0004495970440387964° + y_SE: -0.000219450687097833° Triangle c_N, d_NE, e_N c_N: 0.00043802608161769285° - d_NE: -0.0010442017109895119° - e_N: 0.0006061756293931353° + d_NE: 0.0006061756293931353° + e_N: -0.0010442017109895119° Triangle c_N, d_NE, y_NE c_N: 7.77608707309696e-05° - d_NE: -0.0005049622408037635° - y_NE: 0.0004272013700656885° + d_NE: 0.0004272013700656885° + y_NE: -0.0005049622408037635° Triangle c_N, d_NW, e_N c_N: -0.0018371050143599632° - d_NW: 0.0011681390506907974° - e_N: 0.0006689659636691658° + d_NW: 0.0006689659636691658° + e_N: 0.0011681390506907974° Triangle c_N, d_NW, y_NW c_N: -0.004392411525167006° - d_NW: 0.0009281613228964147° - y_NW: 0.0034642502022776966° + d_NW: 0.0034642502022776966° + y_NW: 0.0009281613228964147° Triangle c_S, d_SE, e_S c_S: 0.00022490750998827025° - d_SE: -0.0004891581593469141° - e_S: 0.00026425064935864384° + d_SE: 0.00026425064935864384° + e_S: -0.0004891581593469141° Triangle c_S, d_SE, y_SE c_S: 0.0006690562241331577° - d_SE: -0.00021946896695368423° - y_SE: -0.000449587257172368° + d_SE: -0.000449587257172368° + y_SE: -0.00021946896695368423° Triangle c_S, d_SW, e_S c_S: -0.0007556856092989506° - d_SW: 0.0004915334549480121° - e_S: 0.0002641521543509384° + d_SW: 0.0002641521543509384° + e_S: 0.0004915334549480121° Triangle c_S, d_SW, y_SW c_S: -0.0003919572288921813° - d_SW: 0.00043448701768511455° - y_SW: -4.252978876451152e-05° + d_SW: -4.252978876451152e-05° + y_SW: 0.00043448701768511455° Triangle c_W, d_NW, e_W c_W: -0.0018371356879498535° - d_NW: 0.0011681941726706668° - e_W: 0.0006689415152791867° + d_NW: 0.0006689415152791867° + e_W: 0.0011681941726706668° Triangle c_W, d_NW, y_NW c_W: -0.00439242709246912° - d_NW: 0.000928190557552° - y_NW: 0.00346423653491712° + d_NW: 0.00346423653491712° + y_NW: 0.000928190557552° Triangle c_W, d_SW, e_W c_W: 0.0004380758375859273° - d_SW: -0.0010442287499685676° - e_W: 0.0006061529123826404° + d_SW: 0.0006061529123826404° + e_W: -0.0010442287499685676° Triangle c_W, d_SW, y_SW c_W: 7.777468017877709e-05° - d_SW: -0.0005049885038488355° - y_SW: 0.00042721382367005845° + d_SW: 0.00042721382367005845° + y_SW: -0.0005049885038488355° Triangle d_NE, e_E, f_NE d_NE: 0.00038569630375207° - e_E: -0.0003446839119192191° - f_NE: -4.1012391825745453e-05° + e_E: -4.1012391825745453e-05° + f_NE: -0.0003446839119192191° Triangle d_NE, e_N, f_NE d_NE: 3.4118590889420375e-05° - e_N: 0.0004912376328576329° - f_NE: -0.0005253562237612641° + e_N: -0.0005253562237612641° + f_NE: 0.0004912376328576329° Triangle d_NW, e_N, f_NW d_NW: 0.0012793501149417352° - e_N: -0.0009787611630969195° - f_NW: -0.0003005889518448157° + e_N: -0.0003005889518448157° + f_NW: -0.0009787611630969195° Triangle d_NW, e_W, f_NW d_NW: 0.0012793645837376744° - e_W: -0.0009787888926879873° - f_NW: -0.00030057569104258164° + e_W: -0.00030057569104258164° + f_NW: -0.0009787888926879873° Triangle d_SE, e_E, f_SE d_SE: -7.914704212907964e-06° - e_E: 0.0002723375437980735° - f_SE: -0.00026442283958516555° + e_E: -0.00026442283958516555° + f_SE: 0.0002723375437980735° Triangle d_SE, e_S, f_SE d_SE: -7.92374907376825e-06° - e_S: 0.0002723546649647801° - f_SE: -0.00026443091589101186° + e_S: -0.00026443091589101186° + f_SE: 0.0002723546649647801° Triangle d_SW, e_S, f_SW d_SW: 0.0003857085871175059° - e_S: -0.00034470395510055596° - f_SW: -4.10046320098445e-05° + e_S: -4.10046320098445e-05° + f_SW: -0.00034470395510055596° Triangle d_SW, e_W, f_SW d_SW: 3.4104280807412124e-05° - e_W: 0.0004912649981676509° - f_SW: -0.0005253692789679576° + e_W: -0.0005253692789679576° + f_SW: 0.0004912649981676509° Triangle e_E, f_NE, g_ENE e_E: -0.00015088143299379908° - f_NE: -4.437100798782012e-06° - g_ENE: 0.0001553185337925811° + f_NE: 0.0001553185337925811° + g_ENE: -4.437100798782012e-06° Triangle e_E, f_SE, g_ESE e_E: -5.289010589137888e-05° - f_SE: 0.00010994821870013993° - g_ESE: -5.705811280876105e-05° + f_SE: -5.705811280876105e-05° + g_ESE: 0.00010994821870013993° Triangle e_E, g_ENE, g_ESE e_E: -7.744546709176348e-05° - g_ENE: 0.0002171941456126092° - g_ESE: -0.000139748678492424° + g_ENE: -0.000139748678492424° + g_ESE: 0.0002171941456126092° Triangle e_N, f_NE, g_NNE e_N: -0.00011644664380128233° - f_NE: 0.000363157568820327° - g_NNE: -0.0002467109250190447° + f_NE: -0.0002467109250190447° + g_NNE: 0.000363157568820327° Triangle e_N, f_NW, g_NNW e_N: -0.0005663172445693476° - f_NW: 0.000436599482547706° - g_NNW: 0.00012971776202874707° + f_NW: 0.00012971776202874707° + g_NNW: 0.000436599482547706° Triangle e_N, g_NNE, g_NNW e_N: 1.3987573481699656e-06° - g_NNE: -0.00034080770834776786° - g_NNW: 0.0003394089509995979° + g_NNE: 0.0003394089509995979° + g_NNW: -0.00034080770834776786° Triangle e_S, f_SE, g_SSE e_S: -5.28844724030364e-05° - f_SE: 0.00010995296653959485° - g_SSE: -5.706849415076931e-05° + f_SE: -5.706849415076931e-05° + g_SSE: 0.00010995296653959485° Triangle e_S, f_SW, g_SSW e_S: -0.00015088330234647174° - f_SW: -4.434221558824447e-06° - g_SSW: 0.00015531752390529618° + f_SW: 0.00015531752390529618° + g_SSW: -4.434221558824447e-06° Triangle e_S, g_SSE, g_SSW e_S: -7.743940860649445e-05° - g_SSE: -0.00013975871755889102° - g_SSW: 0.00021719812617959633° + g_SSE: 0.00021719812617959633° + g_SSW: -0.00013975871755889102° Triangle e_W, f_NW, g_WNW e_W: -0.0005663163395084325° - f_NW: 0.00043660275473200727° - g_WNW: 0.00012971358477642525° + f_NW: 0.00012971358477642525° + g_WNW: 0.00043660275473200727° Triangle e_W, f_SW, g_WSW e_W: -0.00011643403040295652° - f_SW: 0.0003631626645272945° - g_WSW: -0.000246728634124338° + f_SW: -0.000246728634124338° + g_WSW: 0.0003631626645272945° Triangle e_W, g_WNW, g_WSW e_W: 1.4097619143171869e-06° - g_WNW: 0.0003394137133483355° - g_WSW: -0.00034082347526265266° + g_WNW: -0.00034082347526265266° + g_WSW: 0.0003394137133483355° Triangle f_NE, g_ENE, g_NNE f_NE: 7.450149718835064e-05° - g_ENE: 6.294030865205968e-05° - g_NNE: -0.00013744180584041032° + g_ENE: -0.00013744180584041032° + g_NNE: 6.294030865205968e-05° Triangle f_NW, g_NNW, g_WNW f_NW: 0.00023868980004237983° - g_NNW: -0.00011934432004778728° - g_WNW: -0.00011934547999459255° + g_NNW: -0.00011934547999459255° + g_WNW: -0.00011934432004778728° Triangle f_SE, g_ESE, g_SSE f_SE: 3.87570213717936e-05° - g_ESE: -1.937846930388787e-05° - g_SSE: -1.9378552060800303e-05° + g_ESE: -1.9378552060800303e-05° + g_SSE: -1.937846930388787e-05° Triangle f_SW, g_SSW, g_WSW f_SW: 7.450129267994043e-05° - g_SSW: 6.293716665339844e-05° - g_WSW: -0.00013743845931912801° + g_SSW: -0.00013743845931912801° + g_WSW: 6.293716665339844e-05° Total angle distortion: 0.11233054610809035° Highest angle distortion: 0.0039283900732698385°