Функция "Заливка"

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Saber
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 15.07.2003 (Вт) 16:10
Откуда: Москва

Функция "Заливка"

Сообщение Saber » 30.09.2003 (Вт) 18:31

Скажите, пожалуйста, как сделать в проге функцию "Заливка", как в Paint?
Спасибо.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.10.2003 (Ср) 9:22

Если реализуешь с нуля, то топай на [url]algolist.manual.ru[/url], там загрузишься по полной.
Но лучше юзать апишки FillRect и FillRgn.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Black_Star
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 01.10.2003 (Ср) 20:30
Откуда: Minsk

Сообщение Black_Star » 02.10.2003 (Чт) 20:00

Но лучше юзать апишки FillRect и FillRgn.

И что мы сможем этим закрасить ? :D

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 03.10.2003 (Пт) 21:01

На http://algolist.manual.ru/ есть только заливка многоугольников, а что же делать с со скругленными фигурами или фигурами нарисованными от руки? Может быть здесь можно обойтись рекурсивным перебором и методом поиска в глубину (когда точка становится источником волны (проверяются смежные вершины) - метод работы с графами)?

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 04.10.2003 (Сб) 18:50

тогда картинка 100х100 пикселей будет у тебя минуту краситься...

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 04.10.2003 (Сб) 19:14

Ага, это точно, но предложи что-нибудь еще. Какие еще алгоритмы есть закраски объестов с произвольными границами?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.10.2003 (Вс) 7:08

Ввиду конечной точности экранного представления, любой гладкий объект можно представить многоугольником, нарисованным на "пиксельной бумаге" (по аналогии с миллиметровой бумагой).
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

WEB_13
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 06.08.2003 (Ср) 8:02
Откуда: Reutov, Russia

Сообщение WEB_13 » 09.10.2003 (Чт) 3:01

Если просто заливка формы, то...

Sub Dither(vForm As Form)
Dim intLoop As Integer
vForm.DrawStyle = vbInsideSolid
vForm.DrawMode = vbCopyPen
vForm.ScaleMode = vbPixels
vForm.DrawWidth = 2
vForm.ScaleHeight = 256
For intLoop = 0 To 255
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(0, 0, 255 - intLoop), B
Next intLoop
End Sub

Private Sub Form_Activate()
Dither Me
End Sub
Format Hard Disk Completed

DiSe
Обычный пользователь
Обычный пользователь
 
Сообщения: 97
Зарегистрирован: 30.06.2003 (Пн) 19:11

Сообщение DiSe » 09.10.2003 (Чт) 14:10

Люди, пользуйтесь WinAPI. И быстро и удобно. ExtFloodFill - заливка любого региона.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 2

    TopList