Расчет координат третьей точки треугольника - PullRequest
2 голосов
/ 07 октября 2010

ОК, я знаю, что это звучит так, как будто об этом нужно спрашивать на math.stackoverflow.com, но это смущающая простая математика, которую я забыл из старшей школы, а не продвинутый материал для выпускников!* Я занимаюсь графическим программированием, и у меня есть треугольник.Кстати, две стороны этого треугольника равны, но я не уверен, что это актуально.У меня есть координаты двух углов (вершин), но не третьего (эти координаты являются пикселями на экране, если это актуально).Я знаю длины всех трех сторон.

Как определить координаты неизвестной вершины?

Ответы [ 2 ]

2 голосов
/ 07 октября 2010

для наклонных треугольников: c ^ 2 = a ^ 2 + b ^ 2 - 2ab * cos (C)

где a, b, c - длины сторон (независимо от длины) A, B, C - углы, противоположные стороне с одной и той же буквой.

Используйте вышеприведенное для определения угла от одной из известных вам конечных точек, затем используйте угол, положение вершины и угол между соседними сторонами, чтобы определить, где находится неизвестная вершина.

И сложность проблемы не определяет, на каком сайте она должна идти, только предмет. Так что переведите это в математику.

0 голосов
/ 07 октября 2010

РЕДАКТИРОВАТЬ: у меня был серьезный мозговой раньше, но это должно работать. Используйте закон косинусов

/* 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...