Calculating the coordinates of the third point of a triangle

≯℡__Kan透↙ 提交于 2019-12-02 03:24:08

问题


OK, I know this sounds like it should be asked on math.stackoverflow.com, but this is embarrassingly simple maths that I've forgotten from high-school, rather than advanced post-graduate stuff!

I'm doing some graphics programming, and I have a triangle. Incidentally, two of this triangle's sides are equal, but I'm not sure if that's relevant. I have the coordinates of two of the corners (vertices), but not the third (these coordinates are pixels on the screen, in case that's relevant). I know the lengths of all three sides.

How do I determine the coordinates of the unknown vertex?


回答1:


for oblique triangles: c^2 = a^2 + b^2 - 2ab * cos(C)

where a, b, c are the lengths of the sides (regardless of length) and A, B, C are the angles opposite the side with the same letter.

Use the above to figure out the angle from one of the endpoints you know, then use the angle, the position of the vertex, and the angle between the adjacent sides to determine where the unknown vertex is.

And the complexity of the problem doesn't determine which site it should go on, only the subject matter. So you should move this to math.




回答2:


EDIT: I had a serious brainfart previously, but this should work. Use the 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);


来源:https://stackoverflow.com/questions/3883849/calculating-the-coordinates-of-the-third-point-of-a-triangle

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!