IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Раскраска
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Женский
Реальное имя: Jekaterina Lauce

Репутация: -  0  +


Здравствуйте! Я хотела бы узнать, как написать программу-раскраску - например, ребенок выбирает картинку и с помощью палитры ее раскрашивает в различные цвета. В интернете часто встречаются ява-япплеты, есть, правда, и программа Раскрашка. Но мне хотелось бы придумать что-то простое самой. Можно ли такую программу написать с помощью визуального бейсика? Как можно задать возможность раскрашивать отдельные области рисунка? Заранее спасибо за идеи.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Идея интересная. Написать, конечно, можно, на чем угодно - можно и на бейсике, но тут (на этом Форуме) больше бы приветствовались Паскаль или Дельфи..
Как я понял, есть набор контурных рисунков, по которым производится раскраска - да? Вопрос, как задавать цвет. Можно делать номерами (знаменитое @painting by numbers"), можно семплами.. Можно вообще оставить выбор цвета на усмотрение пользователя.

Раскрашивать можно разными способами. Самое простое - заполнение области цветом. Только боюсь, это не очень интересно - делается в одно касание. Можно мазками (или распылять), но с ограничением на область. Тут есть, над чем подумать.. А ты как предполагала?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Женский
Реальное имя: Jekaterina Lauce

Репутация: -  0  +


Я как раз хотела бы щелчком - мои дочки до большего не доросли smile.gif . Я немного разбираюсь в Дельфи, но не понимаю, как описывается такое закрашивание.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
Я как раз хотела бы щелчком - мои дочки до большего не доросли smile.gif . Я немного разбираюсь в Дельфи, но не понимаю, как описывается такое закрашивание.


У класса TCanvas есть такой метод:
FloodFill(x, y: Integer; Color: TColor; FillStyle: TFillStyle);


Он производит заливку канвы текущей кистью, если FillStyle = fsSurface, заливка распространяется на все соседние точки от (x, y) с цветом Color. Если FillStyle = fsBorder, заливка прекращается на точках с цветом Color.

Это конечно в случае если контурный рисунок выполнен на канве.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


Копайте в сторону FloodFill.
Это такой метод, который позволяет закрашивать замкнутые области. При этом можно закрашивать либо область, очерченную линией определенного цвета, либо пятно, залитое определенным цветом. В параметрах указывается координаты какой-либо точки внутри данного контура/пятна, цвет контура/пятна, а также что мы хотим закрашивать - контур или пятно.
То есть:
- исходный рисунок состоит из замкнутых контуров одного заранее известного цвета X.
- при щелчке на рисунке определяется цвет пиксела под курсором. Если это цвет Х, то мы щелкнули на границе, поэтому ничего красить не будем. Если это другой цвет, то вызываем FloodFill, передавая ей координаты пиксела под курсором, цвет Х и константу fsBorder, говорящую нам о том, что заливать будем контур, а не пятно. При этом заливка будет сделана цветом и стилем текущей кисти.
Вот такая вот вводная.
(Хотел было набросать небольшую демку, но интузизизьма не хватило dry.gif )
Правка: Опять я долго набирал ответ... smile.gif

Сообщение отредактировано: Бродяжник -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Женский
Реальное имя: Jekaterina Lauce

Репутация: -  0  +


Спасибо за советы! Попробую разобраться во всем написанном. Может быть, вам встречались в сети какие-то обучающие разработки, литература на эту тему (именно о такого типа прграммах)? Я ничего подходящего не обнаружила.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


В 3-й и 6-й версиях Дельфи есть такой пример: GraphEx (папка ~\DEMOS\DOC\GRAPHEX). Видимо, есть и в других версиях. Поройтесь в исходниках. Там, правда, нет в точности того, что Вам нужно, но какую-то пользу извлечь можно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Женский
Реальное имя: Jekaterina Lauce

Репутация: -  0  +


Спасибо, Бродяжник. Буду смотреть.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.09.2021 16:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name