MainC++DelhiPascalBasicGuest bookForumСоветы

Счетчик















Qbasic:

# Закраска произвольной области

Если на экране нарисована замкнутая кривая, то область внутри нее можно закрасить. Также можно закрасить и область, оставшуюся снаружи от кривой. Для этого используется оператор

PAINT (x, y), цвет_закраски, цвет_границы

Точка (x, y) должна попасть внутрь области, подлежащей закрашиванию.

Если граница области “дырявая”, то краска выльется за пределы области, даже если дырка всего в один пиксель. То же самое произойдет, если граница области содержит по недосмотру кусочек другого цвета - для оператора PAINT это все равно что дырка.

Пример. Нарисовать флаг Японии - красный круг на белом фоне.

‘--------- Флаг Японии ---------
SCREEN 7
LINE (10, 10)-(100, 50), 15, BF
CIRCLE (55, 30), 20, 12
PAINT (55, 30), 12, 12
Чтобы упростить построение сложного контура, можно составить его из нескольких простых. Например, крест на флаге Швеции сделать из двух закрашенных прямоугольников, серп на флаге Турции - из двух кругов, один из которых закрасить белым, а другой, меньший, красным.

При закраске окружности в качестве начальной точки для оператора PAINT удобно брать центр окружности, в других случаях, особенно при закраске маленьких областей, легко “промахнуться” мимо области. Чтобы проконтролировать расположение начальной точки, заменим оператор PAINT оператором PSET(x, y). Убедимся в том, что точка (x, y) попала в нужное место, и после этого вернем оператор PAINT на свое законное место.



Назад





Автор: Гутман Г.Н. Мой любимый QuickBASIC, 2001г












Реклама


Хостинг от uCoz