Уравнение прямой линии между двумя точками - PullRequest
1 голос
/ 14 июня 2010

Мне нужно нарисовать линию, которая связывает две точки.

Я делаю это на Java.Я получаю две точки в качестве параметров, и мне нужно вычислить, находится ли прямая линия между ними внутри черной фигуры.

Я разработал свое собственное решение, используя уравнение прямой линии, но мои результаты отличаются от использования "профессиональные "программы (такие как GIMP или даже MS Paint).

Вот пример того, что я хочу:

alt text http://img411.imageshack.us/img411/788/img1q.png

Но мой алгоритм делает это:

альтернативный текст http://img267.imageshack.us/img267/1908/img2d.png

* Зеленая точка находится за пределами фигуры, и это невозможно.

Есть идеи?Кто-нибудь знает, какой код используется для этого в «профессиональных» приложениях?

Спасибо!Даниэль.

РЕДАКТИРОВАТЬ: Изображения

Ответы [ 4 ]

3 голосов
/ 14 июня 2010

Похоже, что вы усекаете вместо округления до ближайшего пикселя.Трудно увидеть на этих маленьких черных пятен.Не могли бы вы опубликовать код?

3 голосов
/ 14 июня 2010

"Профессиональные" программы, скорее всего, используют Алгоритм Брезенхема .

1 голос
/ 14 июня 2010

Прямые линии обычно рисуются по алгоритму Брезенхэма.Я не понял вашу точку зрения о том, что зеленая точка находится вне фигуры - есть отсечение, чтобы не тратить время на рисование вне видимой области.

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