|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.09.2015, 18:51 | #1 |
Пользователь
Регистрация: 16.05.2011
Сообщений: 86
|
Нарисовать пазловую сетку на Bitmap
Добрый день уважаемые форумчане.
Вообщем возникла необходимость нарисовать на битмапе пазловую сетку. Размер каждого пазлика должен быть в пределах(100px условно в зависимости от результатов деления и остатка) Т.е. пользователь загружает изображение в TImage, допустим 639х478 Создаём буферный битмап аналогичного размера, разбиваем его на условные прямоугольники путём деления. Получим 6 прямоугольников по горизонтали, и 5 по вертикали Размер каждого будет 106х95, за исключением правых и нижних- они будут на пару пикселей больше(в зависимости от остатков деления). Из всего этого мы будем иметь точки (вершины всех прямоугольников). А теперь к сути: как нарисовать сетку по этим точкам, примерно такую. Использовал Bitmap.Canvas.Arc и т.п. в итоге запутался в координатах, циклах, массивах и убился головой об стену. Кто-что думает: |
27.09.2015, 19:07 | #2 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
27.09.2015, 19:53 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
27.09.2015, 20:25 | #4 |
Старожил
Регистрация: 19.06.2013
Сообщений: 2,463
|
Никогда не замечал, что пазлы разные. Думалось, что все совершенно одинаковые.
Сегменты сделаны объединением из площадей окружностей с разным радиусом. А расставить один и тот-же сегмент по координатной сетке, уж тут помогут... Нарисовать один Bitmap на белом фоне вручную, сохранить в файл. Выводить его по координатам много раз. Код:
Репутация: полный "0"
Последний раз редактировалось zvygin1964; 27.09.2015 в 21:03. |
27.09.2015, 20:44 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Для начала, разве что радиус побольше. Потом забабахать сопряжение маленькой окружности с каждой из сторон в сторону вогнутости. Вот с этим лень голову морочить
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
27.09.2015, 21:09 | #6 |
Пользователь
Регистрация: 16.05.2011
Сообщений: 86
|
Спасибо.
Я немного делал по другому, но есть что подчерпнуть из вашего кода. Уже что-то. |
27.09.2015, 21:40 | #7 |
Пользователь
Регистрация: 16.05.2011
Сообщений: 86
|
Да, и ещё..
Мы ведь заранее не знаем количество условных прямоугольников по горизонтали и вертикали, нам известны только ширина и высота битмапа. Надо всё это дело расчитать, исходя из того, что размер каждого пазлика должен быть 100px(+ -) Ведь пользователь может загрузить картинку размером скажем так 833х199 |
28.09.2015, 18:20 | #8 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
Задача понравилась. Сделаю. Каковы сроки?
|
28.09.2015, 20:54 | #9 |
Пользователь
Регистрация: 16.05.2011
Сообщений: 86
|
Да ограничивающих сроков как таковых нет.
Я написал прогу Пазлы (пока прототип) - всё работает Но работает по одному шаблону, т.е. изображение, которое разбивается на сегменты(пазлики)должно иметь фиксированные ширину и высоту. А если написать этот скажем так генератор пазловой сетки, то можно будет разбить любое изображение на разное количество пазликов(типа уровень сложности). Любое в смысле - с разной шириной и высотой. вот мои наработки: Последний раз редактировалось Тоба; 28.09.2015 в 21:06. Причина: Добавление |
28.09.2015, 21:16 | #10 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нарисовать сетку | 3JIou_geg | C# (си шарп) | 0 | 06.04.2015 01:57 |
Нарисовать полупрозрачный прямоугольник на Bitmap или Image | DeGroup | C++ Builder | 2 | 30.04.2012 11:43 |
Как нарисовать сетку в ListView? | Сергей089 | Помощь студентам | 1 | 18.08.2010 09:09 |
из-за чего появляется полоса (на скрине) при вставке BitMap в TImage? - Проблема с Bitmap | Grey@2009 | Мультимедиа в Delphi | 2 | 02.01.2010 20:23 |