graph parabola line

x

y

n_{rv}=%v

n_{nv}=%v

V5_sub = (0.6989959403995233, 1.8392615988836938)
ymax = 8.54510649601633
ymin = -5.895522462359242
xmax = 7.425805210911025
xmin = -6.929875875966015
V4_sub = (0.6474495092078643, 1.2006097039186807)
V3_sub = (0.20930484407876243, -0.5734233376508)
V2_sub = (0.7247691559953529, -0.005732764348566124)
V1_sub = (0.6732227248036938, 0.49099648729088846)
U6_sub = (0.4412637844412281, 1.5908969730639666)
C2_sub = (-1.208222013691861, 0.13618987897699333)
threshold: 0.05
threshold_x: (threshold * (xmax - xmin))
threshold_y: (threshold * (ymax - ymin))
threshold_overall: sqrt(threshold_x^(2) + threshold_y^(2)) / 2
c1: 2
b1: 0
a1: -1
f1(x) = (a1 * x^(2)) + (b1 * x) + c1
a2: 1
a3: a1 - a2
b2: -3
b3: b1 - b2
c2: -1
c3: c1 - c2
discrim: b3^(2) - ((4 * a3) * c3)
E1y = If(a3 ≠ 0, If[discrim ≥ 0, ((-b3) - (sgn(a3) * sqrt(discrim))) / ((2 * a3))], ((-c3)) / b3)
E1x: f1(E1y)
E1real: (E1x, E1y)
E2y = If(a3 ≠ 0, If[discrim > 0, ((-b3) + (sgn(a3) * sqrt(discrim))) / ((2 * a3))])
E2x: f1(E2y)
E2real: (E2x, E2y)
nintersections = If(a3 ≠ 0, If[discrim > 0, 2, If[discrim ≟ 0, 1, 0]], If[b3 ≠ 0, 1, 0])
equilibria = First({E1real, E2real}, nintersections)
C2nearE = Max(Sequence[If[Length[C2_sub - Element[equilibria, i]] < threshold_overall, i, 0], i, 1, nintersections])
f2(x) = (a2 * x^(2)) + (b2 * x) + c2
C2 = DynamicCoordinates(C2_sub, Max[xmin, Min[xmax, If[C2nearE > 0, x(Element[equilibria, C2nearE]), If[abs(x(C2_sub) - f1(y(C2_sub))) < threshold_x, f1(y(C2_sub)), If[abs(x(C2_sub) - f2(y(C2_sub))) < threshold_x, f2(y(C2_sub)), x(C2_sub)]]]]], Max[ymin, Min[ymax, If[C2nearE > 0, y(Element[equilibria, C2nearE]), y(C2_sub)]]])
C1_sub = (0.930954880761989, -0.7153459809763574)
C1nearE = Max(Sequence[If[Length[C1_sub - Element[equilibria, i]] < threshold_overall, i, 0], i, 1, nintersections])
C1 = DynamicCoordinates(C1_sub, Max[xmin, Min[xmax, If[C1nearE > 0, x(Element[equilibria, C1nearE]), If[abs(x(C1_sub) - f1(y(C1_sub))) < threshold_x, f1(y(C1_sub)), If[abs(x(C1_sub) - f2(y(C1_sub))) < threshold_x, f2(y(C1_sub)), x(C1_sub)]]]]], Max[ymin, Min[ymax, If[C1nearE > 0, y(Element[equilibria, C1nearE]), y(C1_sub)]]])
B2_sub = (-0.7958505641585889, 3.1875267104765)
B2nearE = Max(Sequence[If[Length[B2_sub - Element[equilibria, i]] < threshold_overall, i, 0], i, 1, nintersections])
B2 = DynamicCoordinates(B2_sub, Max[xmin, Min[xmax, If[B2nearE > 0, x(Element[equilibria, B2nearE]), If[abs(x(B2_sub) - f1(y(B2_sub))) < threshold_x, f1(y(B2_sub)), If[abs(x(B2_sub) - f2(y(B2_sub))) < threshold_x, f2(y(B2_sub)), x(B2_sub)]]]]], Max[ymin, Min[ymax, If[B2nearE > 0, y(Element[equilibria, B2nearE]), y(B2_sub)]]])
u22: y(B2)^(2) - y(C2)^(2)
v22: y(B2) - y(C2)
z22: x(B2) - x(C2)
B1_sub = (0.15775841288710338, 1.3070516864128505)
B1nearE = Max(Sequence[If[Length[B1_sub - Element[equilibria, i]] < threshold_overall, i, 0], i, 1, nintersections])
B1 = DynamicCoordinates(B1_sub, Max[xmin, Min[xmax, If[B1nearE > 0, x(Element[equilibria, B1nearE]), If[abs(x(B1_sub) - f1(y(B1_sub))) < threshold_x, f1(y(B1_sub)), If[abs(x(B1_sub) - f2(y(B1_sub))) < threshold_x, f2(y(B1_sub)), x(B1_sub)]]]]], Max[ymin, Min[ymax, If[B1nearE > 0, y(Element[equilibria, B1nearE]), y(B1_sub)]]])
u12: y(B1)^(2) - y(C1)^(2)
v12: y(B1) - y(C1)
z12: x(B1) - x(C1)
A2_sub = (0.08043876609961483, -0.2186167293369028)
A2nearE = Max(Sequence[If[Length[A2_sub - Element[equilibria, i]] < threshold_overall, i, 0], i, 1, nintersections])
A2 = DynamicCoordinates(A2_sub, Max[xmin, Min[xmax, If[A2nearE > 0, x(Element[equilibria, A2nearE]), If[abs(x(A2_sub) - f1(y(A2_sub))) < threshold_x, f1(y(A2_sub)), If[abs(x(A2_sub) - f2(y(A2_sub))) < threshold_x, f2(y(A2_sub)), x(A2_sub)]]]]], Max[ymin, Min[ymax, If[A2nearE > 0, y(Element[equilibria, A2nearE]), y(A2_sub)]]])
u21: y(A2)^(2) - y(C2)^(2)
v21: y(A2) - y(C2)
det2: (u21 * v22) - (v21 * u22)
z21: x(A2) - x(C2)
pa2: ((z21 * v22) - (z22 * v21)) / det2
pb2: ((z22 * u21) - (z21 * u22)) / det2
pc2: x(A2) - (pb2 * y(A2)) - (pa2 * y(A2)^(2))
p2(x) = (pa2 * x^(2)) + (pb2 * x) + pc2
p2U6: p2(Min[ymax, Max[ymin, y(U6_sub)]])
A1_sub = (1.8587906422118516, 0.6329191306164479)
A1nearE = Max(Sequence[If[Length[A1_sub - Element[equilibria, i]] < threshold_overall, i, 0], i, 1, nintersections])
A1 = DynamicCoordinates(A1_sub, Max[xmin, Min[xmax, If[A1nearE > 0, x(Element[equilibria, A1nearE]), If[abs(x(A1_sub) - f1(y(A1_sub))) < threshold_x, f1(y(A1_sub)), If[abs(x(A1_sub) - f2(y(A1_sub))) < threshold_x, f2(y(A1_sub)), x(A1_sub)]]]]], Max[ymin, Min[ymax, If[A1nearE > 0, y(Element[equilibria, A1nearE]), y(A1_sub)]]])
u11: y(A1)^(2) - y(C1)^(2)
v11: y(A1) - y(C1)
det1: (u11 * v12) - (v11 * u12)
z11: x(A1) - x(C1)
pb1: ((z12 * u11) - (z11 * u12)) / det1
pa1: ((z11 * v12) - (z12 * v11)) / det1
pc1: x(A1) - (pb1 * y(A1)) - (pa1 * y(A1)^(2))
p1(x) = (pa1 * x^(2)) + (pb1 * x) + pc1
p1U6: p1(Min[ymax, Max[ymin, y(U6_sub)]])
U5_sub = (-1.002036288925225, -0.1831360685055142)
p1U5: p1(Min[ymax, Max[ymin, y(U5_sub)]])
p2U5: p2(Min[ymax, Max[ymin, y(U5_sub)]])
U4_sub = (0.4412637844412281, 0.38455450479671965)
p2U4: p2(Min[ymax, Max[ymin, y(U4_sub)]])
p1U4: p1(Min[ymax, Max[ymin, y(U4_sub)]])
U3_sub = (-0.09997374307119182, 0.7748417739420054)
p1U3: p1(Min[ymax, Max[ymin, y(U3_sub)]])
p2U3: p2(Min[ymax, Max[ymin, y(U3_sub)]])
U2_sub = (-0.022654096283703257, 0.3135931831339414)
p2U2: p2(Min[ymax, Max[ymin, y(U2_sub)]])
p1U2: p1(Min[ymax, Max[ymin, y(U2_sub)]])
U1_sub = (-1.5175006008418155, -1.0701525892902546)
p2U1: p2(Min[ymax, Max[ymin, y(U1_sub)]])
p1U1: p1(Min[ymax, Max[ymin, y(U1_sub)]])
pxmax = 1.0E100
pxmin = -1.0E100
parabola1MatchesF1: f1 ≟ p1
xlabeldisplayed: "" + (LaTeX[xlabel]) + ""
ylabeldisplayed: "" + (LaTeX[ylabel]) + ""
parabola1MatchesF2: f2 ≟ p1
parabola2MatchesF2: f2 ≟ p2
parabola2MatchesF1: f1 ≟ p2
parabola1MatchesOne: parabola1MatchesF1 ∨ parabola1MatchesF2
parabola2MatchesOther: parabola2MatchesF1 ∧ (¬parabola1MatchesF1) ∨ parabola2MatchesF2 ∧ (¬parabola1MatchesF2)
showgrid = false
step = 1 (slider from 1 to maxstep, step 1)
LL = Corner(1)
UR = Corner(3)
E1orig_sub = (-2.88348102742078, 2.0521455638720325)
E2orig_sub = (1.8330174266160222, -0.8572686243019159)
E1origclose = Max(Sequence[If[Length[E1orig_sub - Element[equilibria, i]] < threshold_overall, i, 0], i, 1, nintersections])
E2origclose = Max(Sequence[If[Length[E2orig_sub - Element[equilibria, i]] < threshold_overall, i, 0], i, 1, nintersections])
E1orig = DynamicCoordinates(E1orig_sub, Max[xmin, Min[xmax, If[E1origclose > 0, x(Element[equilibria, E1origclose]), x(E1orig_sub)]]], Max[ymin, Min[ymax, If[E1origclose > 0, y(Element[equilibria, E1origclose]), y(E1orig_sub)]]])
E2orig = DynamicCoordinates(E2orig_sub, Max[xmin, Min[xmax, If[E2origclose > 0, x(Element[equilibria, E2origclose]), x(E2orig_sub)]]], Max[ymin, Min[ymax, If[E2origclose > 0, y(Element[equilibria, E2origclose]), y(E2orig_sub)]]])
E1origtype = 1
E1origstable = true
E2origstable = true
E2origtype = 1
E1label = If(E1origtype ≟ 1, "SN", If[E1origtype ≟ 2, "SS", If[E1origtype ≟ 3, "C", If[E1origtype ≟ 4, "US", If[E1origtype ≟ 5, "UN", "SD"]]]])
E2label = If(E2origtype ≟ 1, "SN", If[E2origtype ≟ 2, "SS", If[E2origtype ≟ 3, "C", If[E2origtype ≟ 4, "US", If[E2origtype ≟ 5, "UN", "SD"]]]])
E4 = NaN
n_e = 0 (slider from 0 to 2, step 1)
E1found: step ≥ 2 ∧ (n_e ≥ 1 ∧ E1origclose ≟ 1 ∨ n_e ≥ 2 ∧ E2origclose ≟ 1)
E2found: step ≥ 2 ∧ (n_e ≥ 1 ∧ E1origclose ≟ 2 ∨ n_e ≥ 2 ∧ E2origclose ≟ 2)
E1type = If(E1found, If[E1origclose ≟ 1, E1origtype, If[E2origclose ≟ 1, E2origtype, -1]], -1)
E2type = If(E2found, If[E1origclose ≟ 2, E1origtype, If[E2origclose ≟ 2, E2origtype, -1]], -1)
showsliders: true
V1 = DynamicCoordinates(V1_sub, Min[xmax, Max[xmin, x(V1_sub)]], Min[ymax, Max[ymin, y(V1_sub)]])
V2 = DynamicCoordinates(V2_sub, Min[xmax, Max[xmin, x(V2_sub)]], Min[ymax, Max[ymin, y(V2_sub)]])
n_v = 0 (slider from 0 to 5, step 1)
f1V1: f1(y(V1))
f1V2: f1(y(V2))
f2V1: f2(y(V1))
f2V2: f2(y(V2))
ftopV1 = Max(f1V1, f2V1)
fbotV1 = Min(f1V1, f2V1)
V3 = DynamicCoordinates(V3_sub, Min[xmax, Max[xmin, x(V3_sub)]], Min[ymax, Max[ymin, y(V3_sub)]])
V4 = DynamicCoordinates(V4_sub, Min[xmax, Max[xmin, x(V4_sub)]], Min[ymax, Max[ymin, y(V4_sub)]])
V5 = DynamicCoordinates(V5_sub, Min[xmax, Max[xmin, x(V5_sub)]], Min[ymax, Max[ymin, y(V5_sub)]])
V1region = If(x(V1) > ftopV1, 1, If[x(V1) < fbotV1, 3, If[y(V1) < E1y, 4, If[y(V1) > E2y, 5, 2]]])
fbotV2 = Min(f1V2, f2V2)
ftopV2 = Max(f1V2, f2V2)
f1V3: f1(y(V3))
f2V3: f2(y(V3))
fbotV3 = Min(f1V3, f2V3)
ftopV3 = Max(f1V3, f2V3)
f1V4: f1(y(V4))
f2V4: f2(y(V4))
fbotV4 = Min(f1V4, f2V4)
ftopV4 = Max(f1V4, f2V4)
f1V5: f1(y(V5))
f2V5: f2(y(V5))
fbotV5 = Min(f1V5, f2V5)
ftopV5 = Max(f1V5, f2V5)
V2region = If(x(V2) > ftopV2, 1, If[x(V2) < fbotV2, 3, If[y(V2) < E1y, 4, If[y(V2) > E2y, 5, 2]]])
V3region = If(x(V3) > ftopV3, 1, If[x(V3) < fbotV3, 3, If[y(V3) < E1y, 4, If[y(V3) > E2y, 5, 2]]])
V4region = If(x(V4) > ftopV4, 1, If[x(V4) < fbotV4, 3, If[y(V4) < E1y, 4, If[y(V4) > E2y, 5, 2]]])
V5region = If(x(V5) > ftopV5, 1, If[x(V5) < fbotV5, 3, If[y(V5) < E1y, 4, If[y(V5) > E2y, 5, 2]]])
V2difregion: step ≥ 3 ∧ n_v ≥ 2 ∧ V2region ≠ V1region
V3difregion: step ≥ 3 ∧ n_v ≥ 3 ∧ V3region ≠ V1region ∧ V3region ≠ V2region
V4difregion: step ≥ 3 ∧ n_v ≥ 4 ∧ V4region ≠ V1region ∧ V4region ≠ V2region ∧ V4region ≠ V3region
V5difregion: step ≥ 3 ∧ n_v ≥ 5 ∧ V5region ≠ V1region ∧ V5region ≠ V2region ∧ V5region ≠ V3region ∧ V5region ≠ V4region
maxstep: 3
vecmult: 0.08
vecdx: (vecmult * (xmax - xmin))
vecdy: (vecmult * (ymax - ymin))
vecdirs: {(vecdx, 0), (0, vecdy), ((-vecdx), 0), (0, (-vecdy)), (vecdx / sqrt(2), vecdy / sqrt(2)), (vecdx / sqrt(2), ((-vecdy)) / sqrt(2)), (((-vecdx)) / sqrt(2), ((-vecdy)) / sqrt(2)), (((-vecdx)) / sqrt(2), vecdy / sqrt(2))}
V1_h = Point(V1 + vecdirs)
V2_h = Point(V2 + vecdirs)
V3_h = Point(V3 + vecdirs)
V4_h = Point(V4 + vecdirs)
V5_h = Point(V5 + vecdirs)
vec1 = Vector(V1, V1_h)
vec2 = Vector(V2, V2_h)
vec3 = Vector(V3, V3_h)
vec4 = Vector(V4, V4_h)
vec5 = Vector(V5, V5_h)
fx(x, y) = f1(y) - x
fy(x, y) = f2(y) - x
V2correctangle: step ≥ 3 ∧ n_v ≥ 2 ∧ If[fx(V2) > 0, If[fy(V2) > 0, V2_h ≟ V2 + (vecdx, vecdy) / sqrt(2), V2_h ≟ V2 + (vecdx, (-vecdy)) / sqrt(2)], If[fy(V2) > 0, V2_h ≟ V2 + ((-vecdx), vecdy) / sqrt(2), V2_h ≟ V2 + ((-vecdx), (-vecdy)) / sqrt(2)]]
V3correctangle: step ≥ 3 ∧ n_v ≥ 3 ∧ If[fx(V3) > 0, If[fy(V3) > 0, V3_h ≟ V3 + (vecdx, vecdy) / sqrt(2), V3_h ≟ V3 + (vecdx, (-vecdy)) / sqrt(2)], If[fy(V3) > 0, V3_h ≟ V3 + ((-vecdx), vecdy) / sqrt(2), V3_h ≟ V3 + ((-vecdx), (-vecdy)) / sqrt(2)]]
V4correctangle: step ≥ 3 ∧ n_v ≥ 4 ∧ If[fx(V4) > 0, If[fy(V4) > 0, V4_h ≟ V4 + (vecdx, vecdy) / sqrt(2), V4_h ≟ V4 + (vecdx, (-vecdy)) / sqrt(2)], If[fy(V4) > 0, V4_h ≟ V4 + ((-vecdx), vecdy) / sqrt(2), V4_h ≟ V4 + ((-vecdx), (-vecdy)) / sqrt(2)]]
U1 = DynamicCoordinates(U1_sub, Min[xmax, Max[xmin, If[abs(x(U1_sub) - p1U1) < abs(x(U1_sub) - p2U1), p1U1, p2U1]]], Min[ymax, Max[ymin, y(U1_sub)]])
V5correctangle: step ≥ 3 ∧ n_v ≥ 5 ∧ If[fx(V5) > 0, If[fy(V5) > 0, V5_h ≟ V5 + (vecdx, vecdy) / sqrt(2), V5_h ≟ V5 + (vecdx, (-vecdy)) / sqrt(2)], If[fy(V5) > 0, V5_h ≟ V5 + ((-vecdx), vecdy) / sqrt(2), V5_h ≟ V5 + ((-vecdx), (-vecdy)) / sqrt(2)]]
U2 = DynamicCoordinates(U2_sub, Min[xmax, Max[xmin, If[abs(x(U2_sub) - p1U2) < abs(x(U2_sub) - p2U2), p1U2, p2U2]]], Min[ymax, Max[ymin, y(U2_sub)]])
U3 = DynamicCoordinates(U3_sub, Min[xmax, Max[xmin, If[abs(x(U3_sub) - p1U3) < abs(x(U3_sub) - p2U3), p1U3, p2U3]]], Min[ymax, Max[ymin, y(U3_sub)]])
U4 = DynamicCoordinates(U4_sub, Min[xmax, Max[xmin, If[abs(x(U4_sub) - p1U4) < abs(x(U4_sub) - p2U4), p1U4, p2U4]]], Min[ymax, Max[ymin, y(U4_sub)]])
U5 = DynamicCoordinates(U5_sub, Min[xmax, Max[xmin, If[abs(x(U5_sub) - p1U5) < abs(x(U5_sub) - p2U5), p1U5, p2U5]]], Min[ymax, Max[ymin, y(U5_sub)]])
U6 = DynamicCoordinates(U6_sub, Min[xmax, Max[xmin, If[abs(x(U6_sub) - p1U6) < abs(x(U6_sub) - p2U6), p1U6, p2U6]]], Min[ymax, Max[ymin, y(U6_sub)]])
V1correctangle: step ≥ 3 ∧ n_v ≥ 1 ∧ If[fx(V1) > 0, If[fy(V1) > 0, V1_h ≟ V1 + (vecdx, vecdy) / sqrt(2), V1_h ≟ V1 + (vecdx, (-vecdy)) / sqrt(2)], If[fy(V1) > 0, V1_h ≟ V1 + ((-vecdx), vecdy) / sqrt(2), V1_h ≟ V1 + ((-vecdx), (-vecdy)) / sqrt(2)]]
U1_h = Point(U1 + vecdirs)
U2_h = Point(U2 + vecdirs)
U3_h = Point(U3 + vecdirs)
U4_h = Point(U4 + vecdirs)
U5_h = Point(U5 + vecdirs)
U6_h = Point(U6 + vecdirs)
vecU1 = Vector(U1, U1_h)
vecU2 = Vector(U2, U2_h)
vecU3 = Vector(U3, U3_h)
vecU4 = Vector(U4, U4_h)
vecU5 = Vector(U5, U5_h)
vecU6 = Vector(U6, U6_h)
U1segment = If(x(U1) ≟ p1(y(U1)), If[y(U1) < E1y, 1, If[y(U1) > E2y, 3, 2]], If[y(U1) < E1y, 4, If[y(U1) > E2y, 6, 5]])
U2segment = If(x(U2) ≟ p1(y(U2)), If[y(U2) < E1y, 1, If[y(U2) > E2y, 3, 2]], If[y(U2) < E1y, 4, If[y(U2) > E2y, 6, 5]])
U3segment = If(x(U3) ≟ p1(y(U3)), If[y(U3) < E1y, 1, If[y(U3) > E2y, 3, 2]], If[y(U3) < E1y, 4, If[y(U3) > E2y, 6, 5]])
U4segment = If(x(U4) ≟ p1(y(U4)), If[y(U4) < E1y, 1, If[y(U4) > E2y, 3, 2]], If[y(U4) < E1y, 4, If[y(U4) > E2y, 6, 5]])
U5segment = If(x(U5) ≟ p1(y(U5)), If[y(U5) < E1y, 1, If[y(U5) > E2y, 3, 2]], If[y(U5) < E1y, 4, If[y(U5) > E2y, 6, 5]])
U6segment = If(x(U6) ≟ p1(y(U6)), If[y(U6) < E1y, 1, If[y(U6) > E2y, 3, 2]], If[y(U6) < E1y, 4, If[y(U6) > E2y, 6, 5]])
n_u = 0 (slider from 0 to 6, step 1)
U2difsegment: step ≥ 3 ∧ n_u ≥ 2 ∧ U2segment ≠ U1segment
U3difsegment: step ≥ 3 ∧ n_u ≥ 3 ∧ U3segment ≠ U1segment ∧ U3segment ≠ U2segment
U4difsegment: step ≥ 3 ∧ n_u ≥ 4 ∧ U4segment ≠ U1segment ∧ U4segment ≠ U2segment ∧ U4segment ≠ U3segment
U5difsegment: step ≥ 3 ∧ n_u ≥ 5 ∧ U5segment ≠ U1segment ∧ U5segment ≠ U2segment ∧ U5segment ≠ U3segment ∧ U5segment ≠ U4segment
U6difsegment: step ≥ 3 ∧ n_u ≥ 6 ∧ U6segment ≠ U1segment ∧ U6segment ≠ U2segment ∧ U6segment ≠ U3segment ∧ U6segment ≠ U4segment ∧ U6segment ≠ U5segment
U1correctangle: step ≥ 3 ∧ n_u ≥ 1 ∧ If[fx(U1) ≟ 0, If[fy(U1) > 0, U1_h ≟ U1 + (0, vecdy), If[fy(U1) < 0, U1_h ≟ U1 + (0, (-vecdy))]], If[fy(U1) ≟ 0, If[fx(U1) > 0, U1_h ≟ U1 + (vecdx, 0), If[fx(U1) < 0, U1_h ≟ U1 + ((-vecdx), 0)]]]]
U2correctangle: step ≥ 3 ∧ n_u ≥ 2 ∧ If[fx(U2) ≟ 0, If[fy(U2) > 0, U2_h ≟ U2 + (0, vecdy), If[fy(U2) < 0, U2_h ≟ U2 + (0, (-vecdy))]], If[fy(U2) ≟ 0, If[fx(U2) > 0, U2_h ≟ U2 + (vecdx, 0), If[fx(U2) < 0, U2_h ≟ U2 + ((-vecdx), 0)]]]]
U3correctangle: step ≥ 3 ∧ n_u ≥ 3 ∧ If[fx(U3) ≟ 0, If[fy(U3) > 0, U3_h ≟ U3 + (0, vecdy), If[fy(U3) < 0, U3_h ≟ U3 + (0, (-vecdy))]], If[fy(U3) ≟ 0, If[fx(U3) > 0, U3_h ≟ U3 + (vecdx, 0), If[fx(U3) < 0, U3_h ≟ U3 + ((-vecdx), 0)]]]]
U4correctangle: step ≥ 3 ∧ n_u ≥ 4 ∧ If[fx(U4) ≟ 0, If[fy(U4) > 0, U4_h ≟ U4 + (0, vecdy), If[fy(U4) < 0, U4_h ≟ U4 + (0, (-vecdy))]], If[fy(U4) ≟ 0, If[fx(U4) > 0, U4_h ≟ U4 + (vecdx, 0), If[fx(U4) < 0, U4_h ≟ U4 + ((-vecdx), 0)]]]]
U5correctangle: step ≥ 3 ∧ n_u ≥ 5 ∧ If[fx(U5) ≟ 0, If[fy(U5) > 0, U5_h ≟ U5 + (0, vecdy), If[fy(U5) < 0, U5_h ≟ U5 + (0, (-vecdy))]], If[fy(U5) ≟ 0, If[fx(U5) > 0, U5_h ≟ U5 + (vecdx, 0), If[fx(U5) < 0, U5_h ≟ U5 + ((-vecdx), 0)]]]]
U6correctangle: step ≥ 3 ∧ n_u ≥ 6 ∧ If[fx(U6) ≟ 0, If[fy(U6) > 0, U6_h ≟ U6 + (0, vecdy), If[fy(U6) < 0, U6_h ≟ U6 + (0, (-vecdy))]], If[fy(U6) ≟ 0, If[fx(U6) > 0, U6_h ≟ U6 + (vecdx, 0), If[fx(U6) < 0, U6_h ≟ U6 + ((-vecdx), 0)]]]]
f1flip = CurveCartesian(f1(t), t, t, ymin, ymax)
f2flip = CurveCartesian(f2(t), t, t, ymin, ymax)
ps1show = CurveCartesian(p1(t), t, t, ymin, ymax)
ps2show = CurveCartesian(p2(t), t, t, ymin, ymax)
showEclass: true
showElabel: true