Помощь - Поиск - Пользователи - Календарь
Полная версия: Закрашивание многоугольников по точкам
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Archon
Как по точкам нарисовать выпуклый закрашенный четырёхуголькик (или треугольник), кто-нибудь знает? Даны координаты вершин.

Пробовал самописным аналогом FloodFill - мееедленнно.....

PS По точкам потому, что я graph'ом не пользуюсь.

PPS Это не задачка, это мне для личного пользования.
Malice
Цитата(Archon @ 17.06.05 14:50)
Как по точкам нарисовать выпуклый закрашенный четырёхуголькик (или треугольник)?

Я так думаю копать надо в сторону DDA или Брезенхейма. Это целочисленные алгоритмы рисования линии.
Archon
По брезенхаму я параллелепипеды закрашивал, а как здесь применить не врублюсь...
Malice
Цитата(Archon @ 17.06.05 16:32)
По брезенхаму я параллелепипеды закрашивал, а как здесь применить не врублюсь...

Ну так там 2 брезенхейма. На треугольнике проще. Идешь от 1 вершины к 2-ой и к 3-ей. Между ними прямая линия. Если дошел до 2-й (например). то продолжаешь 1->3 и 2->3.
Archon
Некоторые пикселы закрашиваются несколько раз. Разве это оптимальный вариант?

Всё равно, спасибо.
Malice
Цитата(Archon @ 17.06.05 16:56)
Некоторые пикселы закрашиваются несколько раз. Разве это оптимальный вариант?
Всё равно, спасибо.


Извини, не понял почему 2 раза sad.gif Может я плохо выразился. Короче так. Треугольник ABC, сортируешь вершины сверху вниз.
Код

 A

B     x
       
         C

Идешь одновременно по AB и AC (до х) потом BC и xC. Соединяешь точки горизонтальными линиями. Если У одной линии приращение по Y есть, а у второй нет, то она "ждет" вторую.
Archon
Спасибо! Теперь понял.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.