|
楼主 |
TSC999
发表于 2023-11-19 10:24
已知三角形ABC 三个顶点的复坐标,求其垂心复坐标,该公式推导如下:
在上面的证明中,引用了【已知一直线及直线外的一点,从该点向直线引垂线,垂足的复坐标公式】,这个公式的证明见本帖 4# 。
本帖的程序,其实就是一个借助 mathematica 计算软件用【复斜率解析几何】知识做题的例子。
程序代码:
- Clear["Global`*"];(*由三角形的三个顶点求垂心:*)
- k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
- Foot[p_, x_, y_] := ( \!\(\*OverscriptBox[\(x\), \(_\)]\) y - x \!\(\*OverscriptBox[\(y\), \(_\)]\) + (x - y) \!\(\*OverscriptBox[\(p\), \(_\)]\) + (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)) p)/(2 (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\))); (* 从P点向直线XY引垂线,垂足的复坐标 *)
- \!\(\*OverscriptBox[\(Foot\), \(_\)]\)[p_, x_, y_] := (x \!\(\*OverscriptBox[\(y\), \(_\)]\) - \!\(\*OverscriptBox[\(x\), \(_\)]\) y + (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)) p + (x - y) \!\(\*OverscriptBox[\(p\), \(_\)]\))/(2 (x - y));
- a1 = Simplify@Foot[a, b, c]; \!\(\*OverscriptBox[\(a1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[a, b, c];(*从顶点A向BC边引垂线,垂足为A1*)
- b1 = Simplify@Foot[b, a, c]; \!\(\*OverscriptBox[\(b1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[b, a, c];(*从顶点B向AC边引垂线,垂足为B1*)
- Simplify@Factor@Solve[{k[a, a1] == k[a, h], k[b, b1] == k[b, h]}, {h, \!\(\*OverscriptBox[\(h\), \(_\)]\)}](*求AA1与BB1的交点,即是垂心*)
复制代码 |
|