以三角形某一条边为边,做一个三角形外的正三角形,求正三角形第三点坐标,百思不得其解,谢谢大神帮忙解
在坐标系中,随便给出一三角形ABC(三点坐标已知),以任一条边为一边,向外做一个正三角形ACD,求正三角形的第三个点D的坐标:如图由于要在程序里用代码实现,所以需要排除在...
在坐标系中,随便给出一三角形ABC(三点坐标已知),以任一条边为一边,向外做一个正三角形ACD,求正三角形的第三个点D的坐标:如图
由于要在程序里用代码实现,所以需要排除在三角形ABC内侧的那个点D,也就是要保证求出的点D是三角形外部的那个点,希望大神能帮忙 谢谢 展开
由于要在程序里用代码实现,所以需要排除在三角形ABC内侧的那个点D,也就是要保证求出的点D是三角形外部的那个点,希望大神能帮忙 谢谢 展开
2个回答
展开全部
用行列式的正负啊
设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个短竖应该是连起来的 。
请帮我检验一下计算过程中有无差错,谢谢。
设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个短竖应该是连起来的 。
请帮我检验一下计算过程中有无差错,谢谢。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询