Geometric Method for Intersection of Implicit Curves
Loading the math board and drawing, please wait…
In collections
intersection: surface-surface, curve-curve
intersection: surface-surface, curve-curve
intersection: surface-surface, curve-curve
intersection: surface-surface, curve-curve
This example demonstrates the geometric method for finding the intersection points of two implicit curves. Key math concepts include coordinate geometry and curve intersection calculation. Construction highlights involve GeoGebra commands such as ImplicitCurve, Intersect, PolyLine, Element, Textfield, Polygon, Length, Point, ClosestPoint, If, Corner, TableText, and Parametric equations. Suitable for high school and above students to understand curve intersection solving methods and GeoGebra applications.
GeoGebra Commands & Parameters
ImplicitCurve(f1(x, y)) → aIntersect(Circle[D, r_a], OrthogonalLine[D, Segment[D, ClosestPoint[a, D]]], 2) → Z2_aIntersect(Circle[D, r_a], OrthogonalLine[D, Segment[D, ClosestPoint[a, D]]], 1) → Z1_aPolyLine(Zip[ClosestPoint[a, B], B, Z1_a + ((Z2_a - Z1_a) / n_a * Sequence[i, i, 0, n_a])]) → polZaImplicitCurve(f2(x, y)) → bIntersect(Circle[D, r_b], OrthogonalLine[D, Segment[D, ClosestPoint[b, D]]], 1) → Z1_bIntersect(Circle[D, r_b], OrthogonalLine[D, Segment[D, ClosestPoint[b, D]]], 2) → Z2_bPolyLine(Zip[ClosestPoint[b, B], B, Z1_b + ((Z2_b - Z1_b) / n_b * Sequence[i, i, 0, n_b])]) → polZbElement({Intersect[polZb, polZa]}, 1) → PZTextfield(x_{min}) → InputBox6Textfield(x_{max}) → InputBox7Textfield(y_{min}) → InputBox8Textfield(y_{max}) → InputBox9Polygon((x_{min}, y_{min}), (x_{max}, y_{min}), (x_{max}, y_{max}), (x_{min}, y_{max})) → poly1, g1_s, g2_s, g3_s, s4_sLength(lr1) → llr1Length(lf2) → llf2Element(lr1, i_{manual}) → C_tLength(lf1) → llf1Textfield(n_a) → InputBox21Textfield(n_b) → InputBox22Textfield(r_a) → InputBox23Textfield(q) → InputBox24PolyLine(Z1_a + ((Z2_a - Z1_a) / n_a * Sequence[i, i, 0, n_a])) → poly2_aaPolyLine(Z1_b + ((Z2_b - Z1_b) / n_b * Sequence[i, i, 0, n_b])) → poly2_bbPoint(poly2_aa, e1) → R_aPoint(poly2_bb, e2) → R_bClosestPoint(a, R_a) → R'_aClosestPoint(b, R_b) → R'_bLength(R'_a - R'_b) → dmaxmins2If(Defined[PZ], If[fza2 < fzb2, (f1za2, f2za2), (f1zb2, f2zb2)], (NaN, NaN)) → errorz2If(Defined[PZ], If[fza2 < fzb2, R'_a, R'_b], (NaN, NaN)) → Pz2If(ca, PZ, Pz2) → PZ0If(ca, f11, x(errorz2)) → f110If(ca, f22, y(errorz2)) → f220Textfield(r_b) → InputBox13Textfield(f1) → InputBox1Textfield(f2) → InputBox3Corner(1) → Corner1Corner(2) → Corner2Corner(3) → Corner3Textfield(t) → InputBox10TableText({Join[{{"N"}, Sequence[i, i, 1, llr1]}], Join[{{""}, Sequence["→", i, 1, i_{manual}]}], Join[{{"x:"}, x(lr1)}], Join[{{"y:"}, y(lr1)}], Join[{{"f1* 10^-6"}, lf1}], Join[{{"f2* 10^-6"}, lf2}]}, "vr") → text8Textfield(i_{manual}) → Eingabefeld1