【问题标题】:Calculating the coordinates of the third point of a triangle计算三角形第三点的坐标
【发布时间】:2010-10-07 16:43:02
【问题描述】:

好的,我知道这听起来应该在 math.stackoverflow.com 上询问,但这是我从高中忘记的令人尴尬的简单数学,而不是高级研究生的东西!

我正在做一些图形编程,我有一个三角形。顺便说一句,这个三角形的两条边是相等的,但我不确定这是否相关。我有两个角(顶点)的坐标,但没有第三个(如果相关,这些坐标是屏幕上的像素)。我知道所有三个边的长度。

如何确定未知顶点的坐标?

【问题讨论】:

  • 会有两个或零个解决方案。
  • 实际上丢失的顶点可能有四个位置。

标签: graphics coordinates trigonometry


【解决方案1】:

对于斜三角形:c^2 = a^2 + b^2 - 2ab * cos(C)

其中 a、b、c 是边的长度(与长度无关) 而A、B、C是相同字母的对边的角。

使用上面的方法从你知道的一个端点算出角度,然后使用角度、顶点的位置以及相邻边之间的角度来确定未知顶点的位置。

问题的复杂性并不能决定它应该在哪个网站上运行,而只能决定主题。所以你应该把它移到数学上。

【讨论】:

    【解决方案2】:

    编辑:我以前有过严重的脑残,但这应该有效。 使用law of cosines

    /* use the law of cosines to get the angle of CAB */
    c² = a² + b² - 2ab cos(Cangle)
    cos(Cangle) = (a²+b²-c²) / 2ab
    Cangle = acos((a²+b²-c²) / 2ab)
    
    AB = B.xy - A.xy;
    normalize(AB);
    len = length(AC)
    C.x = len*AB.x* cos(Cangle) * len*AB.y*sin(Cangle);
    C.y = len*AB.x*-sin(Cangle) * len*AB.y*cos(Cangle);
    

    【讨论】:

    • 我知道 - 至少 - 第三个点的 x 和 y 坐标是否大于或小于其他两个点的 x 和 y 坐标。这有帮助吗?
    • 向量归一化是将向量转换为单位向量,即长度为 1 的向量。弧度或度数无关紧要,只要您的三角函数使用相同的单位。如果 acos 采用弧度,cos 也必须。
    猜你喜欢
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    相关资源
    最近更新 更多