LINUX.ORG.RU

Простая задачка по геометрии


0

0

Есть две точки A(x_a, y_a) и B(x_b, y_b) и при этом A != B.
Требуется найти координаты точки C(x_c, y_c), такой что
точки ABC образуют правильный треугольник.

P.S.
Таких точек вообще говоря две (с одной и с другой стороны от
отрезка AB).
P.P.S.
Простая формулировка, но достаточно сложное решение. По крайней 
мере у меня. Может кто-нибудь предложит простое решение (в идеале
выражение C через координаты A и B).
anonymous

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

SatanClaus ★★★
()
Ответ на: комментарий от SatanClaus

берём xmaxima и решаем уравнение:

solve([(x_c - x_a)^2 +(y_c-y_a)^2 = (x_a - x_b)^2 + (y_b - y_a)^2,(x_c - x_a)^2 +(y_c-y_a)^2 = (x_c - x_b)^2 + (y_c - y_b)^2],[x_c,y_c]);
SQRT(3) y_b - SQRT(3) y_a - x_b - x_a
(%o2) [[x_c = - -------------------------------------,
2

y_b + y_a + SQRT(3) x_b - SQRT(3) x_a
y_c = -------------------------------------],
2

SQRT(3) y_b - SQRT(3) y_a + x_b + x_a
[x_c = -------------------------------------,
2

y_b + y_a - SQRT(3) x_b + SQRT(3) x_a
y_c = -------------------------------------]]
2

anonymous
()
Ответ на: комментарий от anonymous

ПС правильный имеется в виду, что он равносторонний.

anonymous
()

x_o = (x_a + x_b) / 2;
y_o = (y_a + y_b) / 2;

x_c1 = x_o + (y_o - y_a) * sqrt(3);
y_c1 = y_o + (x_a - x_o) * sqrt(3);

x_c2 = x_o - (y_o - y_a) * sqrt(3);
y_c2 = y_o - (x_a - x_o) * sqrt(3);

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Да, ну? А если, например, x1 = x2 = 0, а y1 = 0, y2 = 1, чего получим по твоим формулам?

anonymous
()

Есть такой вариант:
x' = x1 + (x2 - x1) * cos(phi) - (y2 - y1) * sin(phi)
y' = y1 + (x2 - x1) * sin(phi) + (y2 - y1) * cos(phi)
phi равен Pi/3 или -Pi/3.
По расстоянию между точками вроде проходит.

anonymous
()
Ответ на: комментарий от anonymous

Скорее всего, ничем. Я с максимой не знаком и в вышеприведенном выводе нихера не понял.

anonymous
()

Ну почему в школьном курсе не уделяется внимание комплексным числам как геометрическим объектам - C получается поворотом B относительно A на +/- pi/3, соответственно если под точками понимать комплексные числа, C = A + z(B-A), где z = e^(i*pi/3) или e^(-i*pi/3), как отсюда формула для координат выводится должно быть ясно :)

grob ★★★★★
()
Ответ на: комментарий от grob

в школьной программе вообще нет комплексных чисел:) и правильно, нечего детям голову морочить. Пусть кто хочет, идёт в физ-мат школы. Это всё должно преподаваться в ВУЗе.

anonymous
()
Ответ на: комментарий от grob

в школе квадратное уравнение может и не иметь решений :)

Pi ★★★★★
()
Ответ на: комментарий от anonymous

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

SatanClaus ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.