隐式曲线交点几何法
几何画板及绘图内容加载中,请稍等……
本范例演示如何通过几何方法寻找两条隐式曲线的交点。涉及的核心数学概念包括解析几何、曲线交点计算。作图要点:使用了 GeoGebra 命令如 ImplicitCurve(隐式曲线)、Intersect(交点)、PolyLine(多边形线)、Element(元素)、Textfield(文本框)、Polygon(多边形)、Length(长度)、Point(点)、ClosestPoint(最近点)、If(条件判断)、Corner(角落)、TableText(表格文本)、Parametric(参数方程)等。适合高中及以上数学学习者,用于理解曲线交点求解方法及 GeoGebra 的应用。
GeoGebra 命令及参数
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