Нарисуйте линию на 90 градусов от линии - PullRequest
2 голосов
/ 23 января 2012

На устройстве iOs я провел линию между startPoint и endPoint. После рисования этой линии я хочу продолжить рисование на 90 градусов от endPoint. Поэтому мне нужно создать точку на экране, которую я не знаю, потому что линия может быть под любым углом.

Все было запрограммировано с использованием CGContextAddLineToPoint.

Как правильно смотреть?

Ответы [ 2 ]

1 голос
/ 23 января 2012

Чтобы нарисовать линию, которая перпендикулярна линии startPoint -> endPoint, линия должна начинаться с endPoint и идти к точке, определенной:

X = endPoint.X + (startPoint.Y - endPoint.Y)
Y = endPoint.Y + (endPoint.X - startPoint.X)

Линия будет той же длины, что и исходная линия, но на 90 градусов к ней, начиная с конца исходной линии.

0 голосов
/ 23 января 2012

Назовите точки, которые вы знаете, A и B, а ту, которую вы не знаете, C.

Тогда вектор от A до B:

vec.x = B.x - A.x;
vec.y = B.y - A.y;

Чтобы повернуть двумерный вектор на 90 градусов, переключите компоненты и отмените один. Чтобы вы могли создать:

rightVec.x = vec.y;
rightVex.y = -vec.x;

И затем положение C в:

C = B + t*rightVec;

Для некоторых ненулевых т.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...