Trigonometry 使用三角形的两个坐标';s顶点以计算第三个顶点的坐标
我知道三角形中两个顶点的两个坐标(不与轴对齐),我正在尝试计算第三个顶点的坐标Trigonometry 使用三角形的两个坐标';s顶点以计算第三个顶点的坐标,trigonometry,Trigonometry,我知道三角形中两个顶点的两个坐标(不与轴对齐),我正在尝试计算第三个顶点的坐标 a B ------- C \ | \ | C' \ | c \ | b \ | \ | \| A 我知道A和B的坐标,A和c的长度,角度c始终是直角。我相信对于C的坐标只有两种可能的解决方案;上面画
a
B ------- C
\ |
\ |
C' \ |
c \ | b
\ |
\ |
\|
A
我知道A和B的坐标,A和c的长度,角度c始终是直角。我相信对于C的坐标只有两种可能的解决方案;上面画的一个,以及带有C的一个,反映了线C,大约在C'处。我想计算两个位置
编辑:
三角形的来源如下所示
我知道顶点A、圆心B、圆半径(A),从毕达格的(B-A)我知道c的长度。我试图找到顶点的直线与圆的每一侧相切的点,C和C'
似乎是我问题的答案;任何人都可以详细说明“给定直角三角形的两条边,很容易找到第三条边的长度和方向。”
我知道A和B的坐标,A和c的长度。由此,我相信对于C的坐标,只有两种可能的解
事实并非如此。对于C的位置有无限多的选择,因为你不知道b的长度
例如:
C
|
|
|
|
|
B
\
\
\
c \
\
\
\
A
如果你把C连接到A,你仍然保持那些已知的长度
为了实现这一点,您还需要知道其中一个角度(例如,它是一个直角三角形)或b的长度。如果您知道它将是一个直角三角形,那么您就知道x和y值将从其他两点获取
Point coordsForCompletingTriangleTop(Point a, Point b) {
return new Point(a.x,b,y);
}
Point coordsForCompletingTriangleBottom(Point a, Point b) {
return new Point(b.x,a,y);
}
如果不能保证它是直角三角形,那么您确实需要更多信息。需要B的长度、C的长度或BCA的角度。如果假设a和B是矩形的对角
a = (xa, ya)
b = (xb, yb)
然后右上角的矩形点是c1=(max(xa,xb),max(ya,yb))
左下角的矩形点是c2=(min(xa,xb),min(ya,yb))
假设xa!=xb
和ya!=yb
(xa, ya) A C1 (max(xa, xb), max(ya, yb))
o----------o
|\ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
o----------o
(min(xa, xb), min(ya, yb)) C2 B (xb, yb)
如果对角线方向相反(要测试这一点,请查看xa>xb),则需要将x上的最小值替换为最大值
(min(xa, xb), max(ya, yb)) C3 A'
o----------o
| /|
| / |
| / |
| / |
| / |
| / |
| / |
| / |
| / |
o----------o
B' C4 (max(xa, xb), min(ya, yb))
如果您感兴趣,完整的解决方案实际上就在这个圆圈上:
为了计算这个,假设我们有两个点
A=(xa,ya)
和B=(xb,yb)
。然后这个圆的中心点是c=(0.5(xa+xb),0.5(ya+yb))
-正好是A和B的中点。圆的半径是r=sqrt((xb-xa)^2+(yb-ya)^2)/2
-使用毕达哥拉斯定理得到直线的长度并将其减半。然后,圆上的任何点都可以通过p=c+(rcos(u),rsin(u))
为某个角度u
定义。有两个角度为您提供点p=A
和p=B
,因此u
的这些值不是好的解决方案。你可以写出方程,并对这两个点进行求解,得到你无法使用的u值。这很简单:因为C角是PI/2,那么b=sqrt(C*C-a*a)
所以你知道a,b,C的长度
C和C'的坐标=两个圆的交点:
基本条件:
如果(a)它总是直角三角形吗?@minitech我想是的,否则这个问题就没什么意义了。你知道吗?@minitech是的,角度C总是直角。三角形不一定是直角与轴对齐;你的答案不考虑旋转?你必须假设轴对齐,否则没有唯一的结果。我在原始帖子中说过,我不是在寻找唯一的解决方案;我在寻找两个解决方案。我需要两个可能的C坐标。@user mine会给你这个结果,如果你可以假设三角形want与轴对齐。也就是说,AC
与Y轴平行,AB
与X轴平行。Rezzie所说的是,如果没有这个假设,它可能会旋转,C的坐标可能在无限多个不同的位置。@用户还请记住,我的会提供给您任何点都有一个面积为0的三角形,只要形成一条平行于任一轴的线。C将始终是直角。对不起,我忘了提到这个。长度(a,C)如果是固定的,则只有两种解决方案,请参见问题所附的图片。经过多次评论后,问题实际上发生了变化。原始问题假设有一条线连接两个点。第二条线和第三条线未知。如果已知直角三角形的两条边,则琐碎的毕达哥拉斯可以解决问题。