|
本帖最后由 天山草 于 2023-12-25 13:29 编辑
H 是锐角△ABC 的垂心,AD、BE、CF 为高线。AA1 = HD、BB1 = HE、CC1 = HF。
A2、B2、C2 分别为 A1D、B1E、C1F 的中点。证明 :
OHA2B2C2 五点共圆,其中 O 是△ABC 的外心。记此圆的圆心为 O1,则△ABC 的九点圆圆心也是 O1。
程序代码:
- Clear["Global`*"]; (*令\[CapitalDelta]ABC的外接圆为单位圆O,BC边平行于实轴,AB、AC的复斜率分别为 u^2、v^2 *)
- \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; a = I u v; \!\(\*OverscriptBox[\(a\), \(_\)]\) = 1/(I u v); b = (I u)/v;
- \!\(\*OverscriptBox[\(b\), \(_\)]\) = v/(I u); c = (I v)/u; \!\(\*OverscriptBox[\(c\), \(_\)]\) = u/(I v);
- h = (I ((v^2 + 1) u^2 + v^2))/(u v); \!\(\*OverscriptBox[\(h\), \(_\)]\) = -((I (u^2 + v^2 + 1))/( u v)); (*垂心坐标*)
- (*以上是在此构图下的已知公式,直接引用而不再推导。*)
- Foot[p_, a_, b_] := p/2 + ( \!\(\*OverscriptBox[\(a\), \(_\)]\) b - a \!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(p\), \(_\)]\) (a - b))/(2 (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\))); (* 从P点向AB直线引垂线,垂足的复坐标 *)
- \!\(\*OverscriptBox[\(Foot\), \(_\)]\)[p_, a_, b_] := \!\(\*OverscriptBox[\(p\), \(_\)]\)/2 + (a \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) b + p (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)))/(2 (a - b));
- d = Simplify@Foot[a, b, c]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[a, b, c];
- e = Simplify@Foot[b, a, c]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[b, a, c];
- f = Simplify@Foot[c, a, b]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[c, a, b];
- Print["d = ", d, ", e = ", e, ", f = ", f];
- 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_] := (\!\(\*OverscriptBox[\(a\), \(_\)]\) \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - b) + \!\(\*OverscriptBox[\(b\), \(_\)]\) \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - c) + \!\(\*OverscriptBox[\(c\), \(_\)]\) \!\(\*OverscriptBox[\(a\), \(_\)]\) (c - a))/(\!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) + \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a));
- o1 = Simplify@WX[d, e, f]; \!\(\*OverscriptBox[\(o1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[d, e, f];
- k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
- W1 = {a1, \!\(\*OverscriptBox[\(a1\), \(_\)]\)} /. Simplify@Solve[{(a - a1) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(a1\), \(_\)]\)) == (h - d) (\!\(\*OverscriptBox[\(h\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)), k[a, a1] == k[a, h]}, {a1, \!\(\*OverscriptBox[\(a1\), \(_\)]\)}] // Flatten; a1 = Part[W1, 1]; \!\(\*OverscriptBox[\(a1\), \(_\)]\) = Part[W1, 2];
- a2 = Simplify[(a1 + d)/2]; \!\(\*OverscriptBox[\(a2\), \(_\)]\) = Simplify[(\!\(\*OverscriptBox[\(a1\), \(_\)]\) + \!\(\*OverscriptBox[\(d\), \(_\)]\))/2]; Print["a1 = ", a1, ", a2 = ", a2];
- W2 = {b1, \!\(\*OverscriptBox[\(b1\), \(_\)]\)} /. Simplify@Solve[{(b - b1) (\!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(b1\), \(_\)]\)) == (h - e) (\!\(\*OverscriptBox[\(h\), \(_\)]\) - \!\(\*OverscriptBox[\(e\), \(_\)]\)), k[b, b1] == k[b, h]}, {b1, \!\(\*OverscriptBox[\(b1\), \(_\)]\)}] // Flatten; b1 = Part[W2, 1]; \!\(\*OverscriptBox[\(b1\), \(_\)]\) = Part[W2, 2];
- b2 = Simplify[(b1 + e)/2]; \!\(\*OverscriptBox[\(b2\), \(_\)]\) = Simplify[(\!\(\*OverscriptBox[\(b1\), \(_\)]\) + \!\(\*OverscriptBox[\(e\), \(_\)]\))/2]; Print["b1 = ", b1, ", b2 = ", b2];
- W3 = {c1, \!\(\*OverscriptBox[\(c1\), \(_\)]\)} /. Simplify@Solve[{(c - c1) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(c1\), \(_\)]\)) == (h - f) (\!\(\*OverscriptBox[\(h\), \(_\)]\) - \!\(\*OverscriptBox[\(f\), \(_\)]\)), k[c, c1] == k[c, h]}, {c1, \!\(\*OverscriptBox[\(c1\), \(_\)]\)}] // Flatten; c1 = Part[W3, 1]; \!\(\*OverscriptBox[\(c1\), \(_\)]\) = Part[W3, 2];
- c2 = Simplify[(c1 + f)/2]; \!\(\*OverscriptBox[\(c2\), \(_\)]\) = Simplify[(\!\(\*OverscriptBox[\(c1\), \(_\)]\) + \!\(\*OverscriptBox[\(f\), \(_\)]\))/2]; Print["c1 = ", c1, ", c2 = ", c2];
- Print["复斜率kHC2/复斜率kHA2 = ", Simplify[k[h, c2]/k[h, a2]]];
- Print["复斜率kB2C2/复斜率kB2A2 = ", Simplify[k[b2, c2]/k[b2, a2]]];
- Print["因为 kHC2/kHA2 = kB2C2/kB2A2,所以 HA2B2C2 共圆。"];
- o2 = Simplify@WX[a2, b2, c2]; Print["o1 = ", o1]; Print["o2 = ", o2];
- Print["因为 o1 = o2,所以 O1 即是九点圆的圆心。"];
- Print["O1H = ", Simplify[Sqrt[(o1 - h) (\!\(\*OverscriptBox[\(o1\), \(_\)]\) - \!\(\*OverscriptBox[\(h\), \(_\)]\))]]];
- Print["OO1 = ", Simplify[Sqrt[(o1 - o) (\!\(\*OverscriptBox[\(o1\), \(_\)]\) - \!\(\*OverscriptBox[\(o\), \(_\)]\))]]];
- Print["因为 O1H = OO1,所以 O 点也在 O1 圆上。"];
复制代码
程序运行结果:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|