|
楼主 |
TSC999
发表于 2023-9-10 22:11
本帖最后由 TSC999 于 2023-9-10 22:34 编辑 例 8:
注:进一步计算可知
① H1H2 线段是与 BC 平行的,而 XH1 则与 BC 垂直。
② E、H1、C 三点也是共线的。
程序代码:
- Clear["Global`*"]; (*设B在坐标原点,C在1点, kAB=u^2,kAC=1/v^2 *)
- \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 0; \!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 1; a = (u^2 (v^2 - 1))/( u^2 v^2 - 1);
- \!\(\*OverscriptBox[\(a\), \(_\)]\) = (v^2 - 1)/(u^2 v^2 - 1); \!\(\*OverscriptBox[\(m\), \(_\)]\) = m = 1/2; i = (u (v - 1))/(
- u v - 1); \!\(\*OverscriptBox[\(i\), \(_\)]\) = (v - 1)/(u v - 1);
- h1 = (u^2 + 1)/(1 - u^2 v^2); \!\(\*OverscriptBox[\(h1\), \(_\)]\) = ((u^2 + 1) v^2)/(u^2 v^2 - 1);
- Jx[p_, a_, b_] := (\!\(\*OverscriptBox[\(a\), \(_\)]\) b - a \!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(p\), \(_\)]\) (a - b))/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(*P点的镜像点,镜线是AB*)
- \!\(\*OverscriptBox[\(Jx\), \(_\)]\)[p_, a_, b_] := (a \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) b + p (
- \!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)))/(a - b);
- m1 = Simplify@Jx[m, a, i]; \!\(\*OverscriptBox[\(m1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jx\), \(_\)]\)[m, a, i];
- k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
- W1 = {n, \!\(\*OverscriptBox[\(n\), \(_\)]\)} /. Simplify@Solve[{k[a, m1] == k[a, n], k[b, n] == k[b, c]}, {n, \!\(\*OverscriptBox[\(n\), \(_\)]\)}] // Flatten;n = Part[W1, 1]; \!\(\*OverscriptBox[\(n\), \(_\)]\) = Part[W1, 2];
- Foot[p_, a_, b_] := p/2 + ( \!\(\*OverscriptBox[\(a\), \(_\)]\) b - a \!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(p\), \(_\)]\) (a - b))/(2 (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\))); (* 从P点向XY直线引垂线,垂足的复坐标 *)
- \!\(\*OverscriptBox[\(Foot\), \(_\)]\)[p_, a_, b_] := \!\(\*OverscriptBox[\(p\), \(_\)]\)/2 + (a \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) b + p (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)))/(2 (a - b));
- e = Simplify@Foot[c, a, b]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[c, a, b];
- f = Simplify@Foot[b, a, c]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[b, a, c];
- W2 = {g, \!\(\*OverscriptBox[\(g\), \(_\)]\)} /. Simplify@Solve[{k[e, f] == k[e, g], k[a, m] == k[a, g]}, {g, \!\(\*OverscriptBox[\(g\), \(_\)]\)}] // Flatten;g = Part[W2, 1]; \!\(\*OverscriptBox[\(g\), \(_\)]\) = Part[W2, 2];
- WX[a_, b_, c_] := (a \!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + b \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) + c \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a) )/(\!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) +
- \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a));(*三角形 ABC 的外心坐标:*)
- \!\(\*OverscriptBox[\(WX\), \(_\)]\)[a_, b_, c_] := -((a \!\(\*OverscriptBox[\(a\), \(_\)]\) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) + b \!\(\*OverscriptBox[\(b\), \(_\)]\) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\)) + c \!\(\*OverscriptBox[\(c\), \(_\)]\) (\!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\)))/(\!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) + \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a)));
- x = Simplify@WX[a, e, f]; \!\(\*OverscriptBox[\(x\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[a, e, f];
- y = Simplify@WX[b, n, e]; \!\(\*OverscriptBox[\(y\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[b, n, e];
- z = Simplify@WX[c, n, f]; \!\(\*OverscriptBox[\(z\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[c, n, f];
- o = Simplify@WX[x, y, z]; \!\(\*OverscriptBox[\(o\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[x, y, z];
- hh [a_, b_, c_] := ((b - c) (b + c - a) \!\(\*OverscriptBox[\(a\), \(_\)]\) + (c - a) (c + a - b) \!\(\*OverscriptBox[\(b\), \(_\)]\) + (a - b) (a + b - c) \!\(\*OverscriptBox[\(c\), \(_\)]\))/((b - c) \!\(\*OverscriptBox[\(a\), \(_\)]\) + (c - a) \!\(\*OverscriptBox[\(b\), \(_\)]\) + (a - b) \!\(\*OverscriptBox[\(c\), \(_\)]\)); (*由三顶点求垂心*)
- \!\(\*OverscriptBox[\(hh\), \(_\)]\) [a_, b_, c_] := ((\!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\)) (\!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\)) a + (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\)) (\!\(\*OverscriptBox[\(c\), \(_\)]\) + \!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) b + (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) (\!\(\*OverscriptBox[\(a\), \(_\)]\) + \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\)) c)/((\!\(\*OverscriptBox[\(b\), \(_\)]\) -
- \!\(\*OverscriptBox[\(c\), \(_\)]\)) a + (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\)) b + (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) c);
- h2 = Simplify@hh[x, y, z]; \!\(\*OverscriptBox[\(h2\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(hh\), \(_\)]\)[x, y, z];
- Print["GN 是否垂直于 BC:", Simplify[k[g, n] == -k[b, c]]];
- Print["AOM 是否三点共线:", Simplify[k[a, o] == k[o, m]]];
- Print["\[EmptyUpTriangle]XYZ 是否与 \[EmptyUpTriangle]ABC 相似:", Simplify[k[x, z]/k[x, y] == k[a, c]/k[a, b]] &&
- Simplify[k[y, x]/k[y, z] == k[b, a]/k[b, c]]];
- Print["H1H2 是否为圆X 的切线:", Simplify[(x - h1) (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(h1\), \(_\)]\)) == (x - a) (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\))] && Simplify[k[x, h1] == -k[h1, h2]]];
复制代码 |
|