Geometric Method for Intersection of Implicit Curves

Geometric Method for Intersection of Implicit Curves
Loading the math board and drawing, please wait…
2016-12-17 23:42
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

  1. ImplicitCurve(f1(x, y)) → a
  2. Intersect(Circle[D, r_a], OrthogonalLine[D, Segment[D, ClosestPoint[a, D]]], 2) → Z2_a
  3. Intersect(Circle[D, r_a], OrthogonalLine[D, Segment[D, ClosestPoint[a, D]]], 1) → Z1_a
  4. PolyLine(Zip[ClosestPoint[a, B], B, Z1_a + ((Z2_a - Z1_a) / n_a * Sequence[i, i, 0, n_a])]) → polZa
  5. ImplicitCurve(f2(x, y)) → b
  6. Intersect(Circle[D, r_b], OrthogonalLine[D, Segment[D, ClosestPoint[b, D]]], 1) → Z1_b
  7. Intersect(Circle[D, r_b], OrthogonalLine[D, Segment[D, ClosestPoint[b, D]]], 2) → Z2_b
  8. PolyLine(Zip[ClosestPoint[b, B], B, Z1_b + ((Z2_b - Z1_b) / n_b * Sequence[i, i, 0, n_b])]) → polZb
  9. Element({Intersect[polZb, polZa]}, 1) → PZ
  10. Textfield(x_{min}) → InputBox6
  11. Textfield(x_{max}) → InputBox7
  12. Textfield(y_{min}) → InputBox8
  13. Textfield(y_{max}) → InputBox9
  14. Polygon((x_{min}, y_{min}), (x_{max}, y_{min}), (x_{max}, y_{max}), (x_{min}, y_{max})) → poly1, g1_s, g2_s, g3_s, s4_s
  15. Length(lr1) → llr1
  16. Length(lf2) → llf2
  17. Element(lr1, i_{manual}) → C_t
  18. Length(lf1) → llf1
  19. Textfield(n_a) → InputBox21
  20. Textfield(n_b) → InputBox22
  21. Textfield(r_a) → InputBox23
  22. Textfield(q) → InputBox24
  23. PolyLine(Z1_a + ((Z2_a - Z1_a) / n_a * Sequence[i, i, 0, n_a])) → poly2_aa
  24. PolyLine(Z1_b + ((Z2_b - Z1_b) / n_b * Sequence[i, i, 0, n_b])) → poly2_bb
  25. Point(poly2_aa, e1) → R_a
  26. Point(poly2_bb, e2) → R_b
  27. ClosestPoint(a, R_a) → R'_a
  28. ClosestPoint(b, R_b) → R'_b
  29. Length(R'_a - R'_b) → dmaxmins2
  30. If(Defined[PZ], If[fza2 < fzb2, (f1za2, f2za2), (f1zb2, f2zb2)], (NaN, NaN)) → errorz2
  31. If(Defined[PZ], If[fza2 < fzb2, R'_a, R'_b], (NaN, NaN)) → Pz2
  32. If(ca, PZ, Pz2) → PZ0
  33. If(ca, f11, x(errorz2)) → f110
  34. If(ca, f22, y(errorz2)) → f220
  35. Textfield(r_b) → InputBox13
  36. Textfield(f1) → InputBox1
  37. Textfield(f2) → InputBox3
  38. Corner(1) → Corner1
  39. Corner(2) → Corner2
  40. Corner(3) → Corner3
  41. Textfield(t) → InputBox10
  42. TableText({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") → text8
  43. Textfield(i_{manual}) → Eingabefeld1