Раскраска |
Раскраска |
Jekaterina |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 61 Пол: Женский Реальное имя: Jekaterina Lauce Репутация: 0 |
Здравствуйте! Я хотела бы узнать, как написать программу-раскраску - например, ребенок выбирает картинку и с помощью палитры ее раскрашивает в различные цвета. В интернете часто встречаются ява-япплеты, есть, правда, и программа Раскрашка. Но мне хотелось бы придумать что-то простое самой. Можно ли такую программу написать с помощью визуального бейсика? Как можно задать возможность раскрашивать отдельные области рисунка? Заранее спасибо за идеи.
|
Lapp |
Сообщение
#2
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Идея интересная. Написать, конечно, можно, на чем угодно - можно и на бейсике, но тут (на этом Форуме) больше бы приветствовались Паскаль или Дельфи..
Как я понял, есть набор контурных рисунков, по которым производится раскраска - да? Вопрос, как задавать цвет. Можно делать номерами (знаменитое @painting by numbers"), можно семплами.. Можно вообще оставить выбор цвета на усмотрение пользователя. Раскрашивать можно разными способами. Самое простое - заполнение области цветом. Только боюсь, это не очень интересно - делается в одно касание. Можно мазками (или распылять), но с ограничением на область. Тут есть, над чем подумать.. А ты как предполагала? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Jekaterina |
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 61 Пол: Женский Реальное имя: Jekaterina Lauce Репутация: 0 |
Я как раз хотела бы щелчком - мои дочки до большего не доросли . Я немного разбираюсь в Дельфи, но не понимаю, как описывается такое закрашивание.
|
klem4 |
Сообщение
#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";'
|
Бродяжник |
Сообщение
#5
|
Бывалый Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: 3 |
Копайте в сторону FloodFill.
Это такой метод, который позволяет закрашивать замкнутые области. При этом можно закрашивать либо область, очерченную линией определенного цвета, либо пятно, залитое определенным цветом. В параметрах указывается координаты какой-либо точки внутри данного контура/пятна, цвет контура/пятна, а также что мы хотим закрашивать - контур или пятно. То есть: - исходный рисунок состоит из замкнутых контуров одного заранее известного цвета X. - при щелчке на рисунке определяется цвет пиксела под курсором. Если это цвет Х, то мы щелкнули на границе, поэтому ничего красить не будем. Если это другой цвет, то вызываем FloodFill, передавая ей координаты пиксела под курсором, цвет Х и константу fsBorder, говорящую нам о том, что заливать будем контур, а не пятно. При этом заливка будет сделана цветом и стилем текущей кисти. Вот такая вот вводная. (Хотел было набросать небольшую демку, но интузизизьма не хватило ) Правка: Опять я долго набирал ответ... Сообщение отредактировано: Бродяжник - |
Jekaterina |
Сообщение
#6
|
Пионер Группа: Пользователи Сообщений: 61 Пол: Женский Реальное имя: Jekaterina Lauce Репутация: 0 |
Спасибо за советы! Попробую разобраться во всем написанном. Может быть, вам встречались в сети какие-то обучающие разработки, литература на эту тему (именно о такого типа прграммах)? Я ничего подходящего не обнаружила.
|
Бродяжник |
Сообщение
#7
|
Бывалый Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: 3 |
В 3-й и 6-й версиях Дельфи есть такой пример: GraphEx (папка ~\DEMOS\DOC\GRAPHEX). Видимо, есть и в других версиях. Поройтесь в исходниках. Там, правда, нет в точности того, что Вам нужно, но какую-то пользу извлечь можно.
|
Jekaterina |
Сообщение
#8
|
Пионер Группа: Пользователи Сообщений: 61 Пол: Женский Реальное имя: Jekaterina Lauce Репутация: 0 |
Спасибо, Бродяжник. Буду смотреть.
|
Текстовая версия | 23.12.2024 22:48 |