找回密码
 欢迎注册
查看: 6374|回复: 6

[讨论] 怎么证3点共线

[复制链接]
发表于 2023-1-26 10:03:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
QQ图片20230126095828.png

已知A、B两点,以及从A点发出的两条射线(黑)。

现过B点任意作三条红线,交黑线于C、D、E、F、G、H。

连接DH、EG(橙线)交于M,EG并与CH交于N。

连接并延长FM(紫线),交上黑线于P。

连接PG、FN(蓝线),交于Q。

求证:A、B、Q共线。

我知道笛沙格定理,但好像没法直接用……
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-1-26 10:30:51 | 显示全部楼层
这个题目做一个射影变换,将直线AB变换为无穷远点,那么就变成如下图:
cv.png
已知:CD//GF,CH//DG//EF
求证: PG//FN.
这个证明很简单,因为MP/MF=MD/MH=MG/MN
所以PG//FN.

对应原图,设MPF, MDH, MGN分别交直线AB于P',D',G'
于是得到交比A(M,P,F,P')=A(M,D,H,D')=B(M,D,H,D')=B(M,G,N,G')
所以O(M,P,F,P')=O(M,G,N,G'), 得到O P' G'三点共线。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-1-26 22:06:59 | 显示全部楼层
使用笛沙格定理,可以查看三点形BNG和AFP
它们对应边BN和AF交于H, NG和FP交于M, BG和AP交于D点
而点H,M,D三点在一条直线上,所以两个三点形对应点连线AB,NF,GP共点Q
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-1-27 12:44:33 | 显示全部楼层
mathe 发表于 2023-1-26 22:06
使用笛沙格定理,可以查看三点形BNG和AFP
它们对应边BN和AF交于H, NG和FP交于M, BG和AP交于D点
而点H,M,D ...

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-2-4 22:05:59 | 显示全部楼层
MMA程序暴力证明
  1. (*s,t,u,v,w分别是AC、AF、CB、DB和EB的复斜率*)

  2. \!\(\*OverscriptBox["a", "_"]\) = a = 1;
  3. \!\(\*OverscriptBox["b", "_"]\) = b = 0;
  4. KAB[a_, b_] := (a - b)/(
  5. \!\(\*OverscriptBox["a", "_"]\) -
  6. \!\(\*OverscriptBox["b", "_"]\));
  7. \!\(\*OverscriptBox["KAB", "_"]\)[a_, b_] := 1/KAB[a, b];(*复斜率定义*)
  8. FourPoint[a_, b_, c_, d_] := ((
  9. \!\(\*OverscriptBox["c", "_"]\) d - c
  10. \!\(\*OverscriptBox["d", "_"]\)) (a - b) - (
  11. \!\(\*OverscriptBox["a", "_"]\) b - a
  12. \!\(\*OverscriptBox["b", "_"]\)) (c - d))/((a - b) (
  13. \!\(\*OverscriptBox["c", "_"]\) -
  14. \!\(\*OverscriptBox["d", "_"]\)) - (
  15. \!\(\*OverscriptBox["a", "_"]\) -
  16. \!\(\*OverscriptBox["b", "_"]\)) (c - d));(*过两点A和B、C和D的交点*)

  17. \!\(\*OverscriptBox["FourPoint", "_"]\)[a_, b_, c_, d_] := -(((c
  18. \!\(\*OverscriptBox["d", "_"]\) -
  19. \!\(\*OverscriptBox["c", "_"]\) d) (
  20. \!\(\*OverscriptBox["a", "_"]\) -
  21. \!\(\*OverscriptBox["b", "_"]\)) - ( a
  22. \!\(\*OverscriptBox["b", "_"]\) -
  23. \!\(\*OverscriptBox["a", "_"]\) b) (
  24. \!\(\*OverscriptBox["c", "_"]\) -
  25. \!\(\*OverscriptBox["d", "_"]\)))/((a - b) (
  26. \!\(\*OverscriptBox["c", "_"]\) -
  27. \!\(\*OverscriptBox["d", "_"]\)) - (
  28. \!\(\*OverscriptBox["a", "_"]\) -
  29. \!\(\*OverscriptBox["b", "_"]\)) (c - d)));

  30. \!\(\*OverscriptBox["Jd", "_"]\)[k1_, a1_, k2_, a2_] := -((a1 - k1
  31. \!\(\*OverscriptBox["a1", "_"]\) - (a2 - k2
  32. \!\(\*OverscriptBox["a2", "_"]\)))/(
  33.   k1 - k2));(*复斜率等于k1,过点A1与复斜率等于k2,过点A2的直线交点*)
  34. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1
  35. \!\(\*OverscriptBox["a1", "_"]\)) - k1 (a2 - k2
  36. \!\(\*OverscriptBox["a2", "_"]\)))/(k1 - k2));
  37. c = Jd[s, a, u, b];
  38. \!\(\*OverscriptBox["c", "_"]\) =
  39. \!\(\*OverscriptBox["Jd", "_"]\)[s, a, u, b]; d = Jd[s, a, v, b];
  40. \!\(\*OverscriptBox["d", "_"]\) =
  41. \!\(\*OverscriptBox["Jd", "_"]\)[s, a, v, b]; e = Jd[s, a, w, b];
  42. \!\(\*OverscriptBox["e", "_"]\) =
  43. \!\(\*OverscriptBox["Jd", "_"]\)[s, a, w, b];
  44. h = Jd[t, a, u, b];
  45. \!\(\*OverscriptBox["h", "_"]\) =
  46. \!\(\*OverscriptBox["Jd", "_"]\)[t, a, u, b]; g = Jd[t, a, v, b];
  47. \!\(\*OverscriptBox["g", "_"]\) =
  48. \!\(\*OverscriptBox["Jd", "_"]\)[t, a, v, b]; f = Jd[t, a, w, b];
  49. \!\(\*OverscriptBox["f", "_"]\) =
  50. \!\(\*OverscriptBox["Jd", "_"]\)[t, a, w, b];
  51. m = FourPoint[d, h, e, g];
  52. \!\(\*OverscriptBox["m", "_"]\) =
  53. \!\(\*OverscriptBox["FourPoint", "_"]\)[d, h, e, g]; n =
  54. FourPoint[c, h, e, g];
  55. \!\(\*OverscriptBox["n", "_"]\) =
  56. \!\(\*OverscriptBox["FourPoint", "_"]\)[c, h, e, g];
  57. p = FourPoint[f, m, a, c];
  58. \!\(\*OverscriptBox["p", "_"]\) =
  59. \!\(\*OverscriptBox["FourPoint", "_"]\)[f, m, a, c];
  60. q = FourPoint[f, n, p, g];
  61. \!\(\*OverscriptBox["q", "_"]\) =
  62. \!\(\*OverscriptBox["FourPoint", "_"]\)[f, n, p, g];
  63. Simplify[{1, c, d, e}]
  64. Simplify[{2, h, g, f}]
  65. Simplify[{3, m, n}]
  66. Simplify[{4, q,
  67. \!\(\*OverscriptBox["q", "_"]\)}]
  68. Factor[{4, q,
  69. \!\(\*OverscriptBox["q", "_"]\)}]

复制代码

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-2-6 11:46:48 | 显示全部楼层
本帖最后由 TSC999 于 2023-2-6 12:32 编辑

把 5# 楼的 mathematica 程序用图片显示如下,以便没有安装 mathematica 的友友阅读。
下面图片中的程序对 5# 的程序稍有修改,为的是更容易理解。

楼主的问题.png
程序清单
唐灵的程序.png
程序运行结果:
唐灵的程序运行结果.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-2-6 12:05:49 | 显示全部楼层
本帖最后由 TSC999 于 2023-2-6 12:27 编辑

5# 楼的 dlsh 先生对复平面上直线的【复斜率】概念在平面解析几何中的应用进行了多年研究,推导出了两条直线的交点公式,两条直线间的夹角公式……。对于楼主这个多条直线相交的问题,除纯几何方法外,我认为用 dlsh 的解析方法做是最简单易懂的。因为这个方法不需要多少费脑子的思考,只须按步就班套公式求出各点的复坐标表达式即可。最终判断 A、B、Q 是否共线,只须用软件计算通过 B 点的直线 AB 和 BQ 的复斜率是否一样就行了。

下面是 6#楼的程序代码,安装有 mathematica 的友友可以点击复制。

  1. Clear["Global`*"];
  2. \!\(\*OverscriptBox[\(a\), \(_\)]\) = a = 0;  \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 1; (* 令 s、t 分别是 AX、AY 的复斜率。u、v、w 分别是 CB、DB、EB 的复斜率。*)
  3. (* 调用以下自定义函数求 C、D、E、F、G、H 点的坐标:*)
  4. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(*复斜率定义*)
  5. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  6. \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  7. (*复斜率等于k1且经过A1点的直线,与复斜率等于k2且经过A2点的直线,两直线的交点*)
  8. c = Jd[s, a, u, b]; \!\(\*OverscriptBox[\(c\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[s, a, u, b];
  9. d = Jd[s, a, v, b]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[s, a, v, b];
  10. e = Jd[s, a, w, b]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[s, a, w, b];
  11. h = Jd[t, a, u, b]; \!\(\*OverscriptBox[\(h\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[t, a, u, b];
  12. g = Jd[t, a, v, b]; \!\(\*OverscriptBox[\(g\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[t, a, v, b];
  13. f = Jd[t, a, w, b]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[t, a, w, b];
  14. m = Jd[k[d, h], d, k[e, g], e]; \!\(\*OverscriptBox[\(m\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[d, h], d, k[e, g], e];
  15. n = Jd[k[c, h], c, k[e, g], e];  \!\(\*OverscriptBox[\(n\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[c, h], c, k[e, g], e];
  16. p = Jd[s, c, k[f, m], f]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[s, c, k[f, m], f];
  17. q =  Jd[k[g, p], g, k[f, n], f]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[g, p], g, k[f, n], f];
  18. Simplify[{C -> c, D -> d, "E" -> e}]
  19. Simplify[{H -> h, G -> g, F -> f}]
  20. Simplify[{M -> m, N -> n, Q -> q}]
  21. Simplify[k[a, b] == k[b, q]](*如果通过同一个点 B 的线段 AB 和 BQ 的复斜率相等,则 A、B、Q 三点共线*)
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-22 06:18 , Processed in 0.025763 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表