以三角形某一条边为边,做一个三角形外的正三角形,求正三角形第三点坐标,百思不得其解,谢谢大神帮忙解

在坐标系中,随便给出一三角形ABC(三点坐标已知),以任一条边为一边,向外做一个正三角形ACD,求正三角形的第三个点D的坐标:如图由于要在程序里用代码实现,所以需要排除在... 在坐标系中,随便给出一三角形ABC(三点坐标已知),以任一条边为一边,向外做一个正三角形ACD,求正三角形的第三个点D的坐标:如图
由于要在程序里用代码实现,所以需要排除在三角形ABC内侧的那个点D,也就是要保证求出的点D是三角形外部的那个点,希望大神能帮忙 谢谢
展开
hyh0316
2014-02-26 · TA获得超过2.9万个赞
知道小有建树答主
回答量:876
采纳率:0%
帮助的人:723万
展开全部
用行列式的正负啊
设A(Xa,Ya),B(Xb,Yb),C(Xc,Yc),D(Xd,Yd)
行列式
| 1 Xa Ya |
△= | 1 Xb Yb |=XaYb+XbYc+XcYa-XcYb-XbYa-XaYc
| 1 Xc Yc |
①如果这个行列式的值大于0,说明A、B、C三点按逆时针排列
②如果这个行列式的值小于0,说明A、B、C三点按顺时针排列
③如果这个行列式的值等于0,说明A、B、C三点共线,不能构成三角形
若①,我们只要把向量AC(起点为A,终点为C)绕A点旋转60°
向量AC:Xc-Xa+i(Yc-Ya)
向量AD:Xd-Xa+i(Yd-Ya)
Xd-Xa+i(Yd-Ya)=[Xc-Xa+i(Yc-Ya)](cos60°+isin60°)
=[Xc-Xa+i(Yc-Ya)](1/2+i√3/2)
=[(Xc-Xa)/2-√3(Yc-Ya)/2]+i[√3(Xc-Xa)/2+(Yc-Ya)/2]
Xd+iYd=Xa+iYa+[(Xc-Xa)/2-√3(Yc-Ya)/2]+i[√3(Xc-Xa)/2+(Yc-Ya)/2]
=[(Xc+Xa)/2-√3(Yc-Ya)/2]+i[√3(Xc-Xa)/2+(Yc+Ya)/2]
即D点的坐标为([(Xc+Xa)/2-√3(Yc-Ya)/2],[√3(Xc-Xa)/2+(Yc+Ya)/2])
如果△= <0,那就乘以[cos(-60°)+isin(-60°)]=1/2-i√3/2)也就是结果里√3前面要反号
综合起来,就是
| 1 Xa Ya |
△= | 1 Xb Yb |=XaYb+XbYc+XcYa-XcYb-XbYa-XaYc
| 1 Xc Yc |
D点的坐标为([(Xc+Xa)/2-△/|△|√3(Yc-Ya)/2],[△/|△|√3(Xc-Xa)/2+(Yc+Ya)/2])
这里|△|是△的绝对值,你也可以用符号函数sigh来处理。
注,行列式里,每边3个短竖应该是连起来的 。
请帮我检验一下计算过程中有无差错,谢谢。
Qurathy__AK
2014-02-26
知道答主
回答量:8
采纳率:0%
帮助的人:3.3万
展开全部
三条边的中点坐标可以表示出来...然后用向量来做..假设求AC边的.....AC边中点记为点M..那么向量MD和向量MC有两个关系.模相等和方向垂直,解得D点有两个坐标..观察可以发现你要求的点是距离B点更远的一个点..那么比较两个点到B点的距离,取距离大的点即可......这应该算是比较简单的方法了..既然是编程..这个应该不会太复杂,一步一步来就行...至于列直线方程的 访法个人觉得太繁琐......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式