![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.05.2011
Сообщений: 86
|
![]()
Добрый день уважаемые форумчане.
Вообщем возникла необходимость нарисовать на битмапе пазловую сетку. Размер каждого пазлика должен быть в пределах(100px условно в зависимости от результатов деления и остатка) Т.е. пользователь загружает изображение в TImage, допустим 639х478 Создаём буферный битмап аналогичного размера, разбиваем его на условные прямоугольники путём деления. Получим 6 прямоугольников по горизонтали, и 5 по вертикали Размер каждого будет 106х95, за исключением правых и нижних- они будут на пару пикселей больше(в зависимости от остатков деления). Из всего этого мы будем иметь точки (вершины всех прямоугольников). А теперь к сути: как нарисовать сетку по этим точкам, примерно такую. Использовал Bitmap.Canvas.Arc и т.п. в итоге запутался в координатах, циклах, массивах и убился головой об стену. Кто-что думает: ![]() |
![]() |
![]() |
![]() |
#2 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 19.06.2013
Сообщений: 2,469
|
![]()
Никогда не замечал, что пазлы разные. Думалось, что все совершенно одинаковые.
Сегменты сделаны объединением из площадей окружностей с разным радиусом. А расставить один и тот-же сегмент по координатной сетке, уж тут помогут... Нарисовать один Bitmap на белом фоне вручную, сохранить в файл. Выводить его по координатам много раз. Код:
Репутация: полный "0"
Последний раз редактировалось zvygin1964; 27.09.2015 в 21:03. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Для начала, разве что радиус побольше. Потом забабахать сопряжение маленькой окружности с каждой из сторон в сторону вогнутости. Вот с этим лень голову морочить
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 16.05.2011
Сообщений: 86
|
![]()
Спасибо.
Я немного делал по другому, но есть что подчерпнуть из вашего кода. Уже что-то. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 16.05.2011
Сообщений: 86
|
![]()
Да, и ещё..
Мы ведь заранее не знаем количество условных прямоугольников по горизонтали и вертикали, нам известны только ширина и высота битмапа. Надо всё это дело расчитать, исходя из того, что размер каждого пазлика должен быть 100px(+ -) Ведь пользователь может загрузить картинку размером скажем так 833х199 |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
![]()
Задача понравилась. Сделаю. Каковы сроки?
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 16.05.2011
Сообщений: 86
|
![]()
Да ограничивающих сроков как таковых нет.
Я написал прогу Пазлы (пока прототип) - всё работает Но работает по одному шаблону, т.е. изображение, которое разбивается на сегменты(пазлики)должно иметь фиксированные ширину и высоту. ![]() А если написать этот скажем так генератор пазловой сетки, то можно будет разбить любое изображение на разное количество пазликов(типа уровень сложности). Любое в смысле - с разной шириной и высотой. вот мои наработки: Последний раз редактировалось Тоба; 28.09.2015 в 21:06. Причина: Добавление |
![]() |
![]() |
![]() |
#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 |