Точка переместилась. Нужно узнать по часовой стрелке или против (в любой из четырех частей 2пи).
Для первой четверти- это знак угла ф=arctan(dу/dх), для других трех четвертей, это другие формулы.
А обобщенная формула есть?
То есть нужен знак второй полярной координаты.
Вероятно, это знак определителя или :
dot = a.x * b.x + a.y * b.y ; // скалярное произведение
det = a.x * b.y - a.y * b.x ; // определитель
an:=arctan(det/dot) ; //угол поворота
Решение этого вопроса будет использовано мной в http://programmersforum.ru/showthread.php?t=267214&page=2 .[attachmentid=4756]
Эскизы прикрепленных изображений
Soul,- хороший человек предложил такой вариант: PloshadTreug:=((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1))/2; //знак показывает слева или справа третья точка находится относительно прямой, образованной первыми двумя точками. Ему выслано... литров (в денежном эквиваленте).
То есть расчет площади треугольника у которого один угол совпадает с началом координат.
Работает вариант:
alpha:= arctan(((x1*y2) - (y1*x2))/( (x1*x2) + (y1*y2))) ;
Вероятно, это получено путем решения матрицы 2 х 2.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)