Для вызова BlueRaja перейдите к концу сообщения:
Ответ с использованием перевода и ротации:
Говорит, что точки - это P (x1, y1) и Q (x2, y2).
Так как это графика, вы можете использовать transforms, чтобы получить точку.
Сначала переведите оси так, чтобы P было началом координат.
Затем поверните Q вокруг P на 60 градусов (или -60, чтобы получить другую возможную точку).
Это дает вам координаты третьей точки, скажем, R, когда P - начало координат.
Переведите обратно, и вот оно у вас.
Вы можете использовать стандартный графический API, который позаботится о точности и т.д. Головных болей нет.
Конечно, вы можете сделать математику и на самом деле придумать формулу и использовать ее, что может быть быстрее, но тогда вопрос может быть закрыт как не по теме; -)
Чтобы принять вызов BlueRaja: Вот метод, который не использует тригонометрию.
Даны точки P (x1, y1) и Q (x2, y2)
Скажем, нам нужно найти точку (R) (x3, y3).
Пусть T будет серединой PQ.
Мы знаем площадь треугольника PQR (так как он равносторонний, и мы знаем сторону)
и мы знаем площадь треугольника PRT (1/2 предыдущей площади).
Теперь область треугольника можно записать как определитель, координаты которого указаны в виде записей:
2*Area = |D|
where
| 1 x1 y1|
D = | 1 x2 y2|
| 1 x3 y3|
У нас есть два таких уравнения (которые являются линейными), решите для x3 и y3.