Intersection of Two Parametric Curves via Implicit Curves

Intersection of Two Parametric Curves via Implicit Curves
Loading the math board and drawing, please wait…
2016-12-22 17:19
This example demonstrates how to find the intersection points of two parametric curves by solving the corresponding implicit curves. Key math concepts include parametric equations, implicit curves, intersection solving, and geometric relationships. Construction highlights involve GeoGebra commands such as ImplicitCurve, Intersect, PolyLine, Point, PathParameter, etc. Suitable for high school and above students to understand the relationship between parametric and implicit curves and intersection calculations.

GeoGebra Commands & Parameters

  1. ImplicitCurve(f2(x, y)) → b
  2. Intersect(Circle[D, r_b], OrthogonalLine[D, Segment[D, ClosestPoint[b, D]]], 1) → Z1_b
  3. Intersect(Circle[D, r_b], OrthogonalLine[D, Segment[D, ClosestPoint[b, D]]], 2) → Z2_b
  4. ImplicitCurve(f1(x, y)) → a
  5. Intersect(Circle[D, r_a], OrthogonalLine[D, Segment[D, ClosestPoint[a, D]]], 2) → Z2_a
  6. Intersect(Circle[D, r_a], OrthogonalLine[D, Segment[D, ClosestPoint[a, D]]], 1) → Z1_a
  7. PolyLine(Zip[ClosestPoint[b, B], B, Z1_b + ((Z2_b - Z1_b) / n_b * Sequence[i, i, 0, n_b])]) → polZb
  8. PolyLine(Zip[ClosestPoint[a, B], B, Z1_a + ((Z2_a - Z1_a) / n_a * Sequence[i, i, 0, n_a])]) → polZa
  9. Element({Intersect[polZb, polZa]}, 1) → PZ
  10. Point(a) → B
  11. PathParameter(B) → Pf1B
  12. Textfield(Nn) → InputBox4
  13. Textfield(e) → InputBox5
  14. Textfield(x_{min}) → InputBox6
  15. Textfield(x_{max}) → InputBox7
  16. Textfield(y_{min}) → InputBox8
  17. Textfield(y_{max}) → InputBox9
  18. 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
  19. Textfield(α) → InputBox2
  20. Length(lr1) → llr1
  21. Length(lf2) → llf2
  22. Textfield(r) → InputBox16
  23. CurveCartesian(fa_x(u), fa_y(u), u, x_{min}, x_{max}) → a_c
  24. CurveCartesian(fb_x(v), fb_y(v), v, y_{min}, y_{max}) → b_c
  25. Element(lr1, i_{manual}) → C_t
  26. Element(lr2_bscan, f) → B_{xy}
  27. Length(lf1) → llf1
  28. Textfield(fa_x) → InputBox17
  29. Textfield(fa_y) → InputBox18
  30. Textfield(fb_x) → InputBox19
  31. Textfield(fb_y) → InputBox20
  32. Textfield(n_a) → InputBox21
  33. Textfield(n_b) → InputBox22
  34. Textfield(r_a) → InputBox23
  35. Textfield(q) → InputBox24
  36. PolyLine(Z1_a + ((Z2_a - Z1_a) / n_a * Sequence[i, i, 0, n_a])) → poly2_aa
  37. PolyLine(Z1_b + ((Z2_b - Z1_b) / n_b * Sequence[i, i, 0, n_b])) → poly2_bb
  38. Point(poly2_aa, e1) → R_a
  39. Point(poly2_bb, e2) → R_b
  40. ClosestPoint(a, R_a) → R'_a
  41. ClosestPoint(b, R_b) → R'_b
  42. Length(R'_a - R'_b) → dmaxmins2
  43. If(Defined[PZ], If[fza2 < fzb2, (f1za2, f2za2), (f1zb2, f2zb2)], (NaN, NaN)) → errorz2
  44. If(Defined[PZ], If[fza2 < fzb2, R'_a, R'_b], (NaN, NaN)) → Pz2
  45. If(ca, PZ, Pz2) → PZ0
  46. If(ca, f11, x(errorz2)) → f110
  47. If(ca, f22, y(errorz2)) → f220
  48. Length(lZ1_a) → lälZ1_a
  49. Length(lZ1_b) → lälZ1_b
  50. Element(listxyres, f) → B_t
  51. Textfield(r_b) → InputBox13
  52. Textfield(α) → InputBox11
  53. Element(roots0, f) → A
  54. Sequence((fa_x(x(Element[lr1, i])), fa_y(x(Element[lr1, i]))), i, 1, llr1) → lr2_a
  55. Sequence((fb_x(y(Element[lr1, i])), fb_y(y(Element[lr1, i]))), i, 1, llr1) → lr2_b
  56. Zip(((abs(x(a - b) / x(a)) * 100), (abs(y(a - b) / y(a)) * 100)), a, lr2_a, b, lr2_b) → lr2
  57. Element(lr2_a, i_{manual}) → Cxy_t
  58. TableText({Join[{{"N"}, Sequence[i, i, 1, Length[roots0]]}], Join[{{""}, Sequence["→", i, 1, f]}], Join[{{" u:"}, x(roots0)}], Join[{{" v:"}, y(roots0)}], Join[{{"f1*10^-6"}, lf1_{Pr}2}], Join[{{"f2* 10^-6"}, lf2_{Pr}2}]}, "vr") → Text2
  59. TableText({Join[{{"N"}, Sequence[i, i, 1, llr1]}], Join[{{""}, Sequence["→", i, 1, i_{manual}]}], Join[{{"u:"}, x(lr1)}], Join[{{"v:"}, y(lr1)}], Join[{{"f1* 10^-6"}, lf1}], Join[{{"f2* 10^-6"}, lf2}]}, "vr") → text8
  60. Textfield(t) → InputBox1
  61. Textfield(f) → InputBox3
  62. TableText({Join[{{"N"}, Sequence[i, i, 1, Length[roots0]]}], Join[{{""}, Sequence["→", i, 1, f]}], Join[{{"(x,y)_a"}, lr2_ascan}], Join[{{"(x,y)_b"}, lr2_bscan}], Join[{{"(δx,δy) %"}, lr2scan}]}, "vr") → text12a
  63. TableText({Join[{{"N"}, Sequence[i, i, 1, llr1]}], Join[{{""}, Sequence["→", i, 1, i_{manual}]}], Join[{{"(x,y)_a"}, lr2_a}], Join[{{"(x,y)_b"}, lr2_b}], Join[{{"(δx,δy) %"}, lr2}]}, "vr") → text12r
  64. Textfield(i_{manual}) → Eingabefeld1
  65. Textfield(q2) → Eingabefeld2
  66. ImplicitCurve(f01(x, y)) → c

AI Drawing Prompt Reference

Draw the intersection points of two parametric curves. First, plot the two parametric curves and convert them into implicit curves. Then, find the intersections of these implicit curves with the vertical lines passing through points on the parametric curves. Next, use these intersection points to draw approximated line segments of the parametric curves and find the intersection of these segments. Finally, determine the final intersection point based on the given parameters and conditions.
The prompt above was compiled from the original drawing commands and is for reference only.