Переход между двумя CGPoints, чтобы получить значения ВСЕХ пикселей между? - PullRequest
0 голосов
/ 25 августа 2009

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

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

Должен быть более легкий путь.

1 Ответ

1 голос
/ 25 августа 2009

Звучит так, будто вы делаете эквивалентную линию между двумя точками. И действительно, простые подходы, такие как рекурсивный выбор средних точек или перемещение между двумя точками «немного за раз», не очень привлекательны. Я уверен, что вы можете адаптировать алгоритм рисования линий Брешенхэма к задаче:

http://en.wikipedia.org/wiki/Bresenham's_line_algorithm

Существенная особенность алгоритма состоит в том, чтобы посмотреть на две точки и решить, перемещается ли линия в основном в X или Y. То есть, «в основном X» означает, что линия ближе к горизонтали, «в основном Y» означает ближе к вертикали. Затем он гарантирует, что каждая итерация дает вам новый пиксель, и он будет перемещаться точно на количество пикселей в направлении X (или Y) по мере необходимости.

И, кроме того, это круто.

...