Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.09.2011, 19:43
Genm вне форума Посмотреть профиль Отправить личное сообщение для Genm Найти все сообщения от Genm
  № 1  
Ответить с цитированием
Genm

Регистрация: Aug 2011
Сообщений: 24
Записей в блоге: 1
По умолчанию Расчет кусочков при разрезании изображения

Необходимо разрезать картинку на множество кусочков произвольными горизонтальными и вертикальными линиями. Затем создать отдельную картинку из каждого кусочка.

Все бы ничего, но линии например горизонтальные могут пересекаться с другими горизонтальными линиями и наоборот. В результате, очень сложно расчитать каждый отдельный кусочек.

Есть ли у кого рецепты для решения данной задачи?

Старый 27.09.2011, 19:46
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
но линии например горизонтальные могут пересекаться с другими горизонтальными линиями и наоборот
Это как? Они должны быть не параллельными чтоли?

Старый 27.09.2011, 19:47
Genm вне форума Посмотреть профиль Отправить личное сообщение для Genm Найти все сообщения от Genm
  № 3  
Ответить с цитированием
Genm

Регистрация: Aug 2011
Сообщений: 24
Записей в блоге: 1
Линии не параллельные, но прямые.

Старый 27.09.2011, 20:06
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Смешной способ - создайте картинку с "шумом" и найдите в ней координаты всех пикселов определенного цвета Дальше, можно будет из всех полученых точек насоздавать треугольников, ну а из них, уже и более сложные фигуры, если нужно.
Другой вариант - граф, у вас будет функция генерирующая фигуру с заданым количеством узлов, вы ей передаете координаты уже существующих объектов, а она добавляет еще один.
Еще вариант: создаете "двумерный" массив, заполняете его точками, точки рандомально сдвигаете.
Еще вариант: создаете произвольное количество прямых, и используя такой алгоритм находите все точки пересечения.
__________________
Hell is the possibility of sanity

Старый 27.09.2011, 20:23
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 5  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
А я бы так сделал.

Сначала получил бы семейство-1 фигур из начальной фигуры путем распила вертикальными линиями.
Потом - семейство-2 фигур после распила горизонтальными линиями. Потом в цикле попарно совместил бы каждую фигуру из семейства-1 с фигурой из семейства-2 и нашел бы их пересечение.

Все такие пересечения в сумме и дадут все части исходной картинки.

Старый 28.09.2011, 01:37
flax4Noob вне форума Посмотреть профиль Отправить личное сообщение для flax4Noob Найти все сообщения от flax4Noob
  № 6  
Ответить с цитированием
flax4Noob
[+1 15.01.11]

Регистрация: Jan 2011
Сообщений: 70
Занятно) а я бы делал функцию "деление картинки на две части" и гонял ее, пока куски не окажутся нужного размера. Складывая результаты в массив. Ну и бегая по массиву этому функцией. Делить картинку пополам линией под произвольным углом достаточно просто ИМХО. Цикл while вполне примитивен. Ну а в качестве условия можно взять, скажем, ее площадь, округленную до квадрата. Конечно, картинка получится порезанной не прямыми линиями (как в задаче) Но от этого пазл будет еще яростнее. А вот вапрос-в АС3 разве есть возможность скопировать битмап не прямоугольной формы?

Старый 28.09.2011, 10:23
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 7  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
1. Попиксельно
2. Через маску той самой "не прямоугольной" формы

Старый 28.09.2011, 11:32
Genm вне форума Посмотреть профиль Отправить личное сообщение для Genm Найти все сообщения от Genm
  № 8  
Ответить с цитированием
Genm

Регистрация: Aug 2011
Сообщений: 24
Записей в блоге: 1
Попробую сделать так:
-Рассчитаю все точки пересечения отрезков. По данному алгоритму http://algolist.manual.ru/maths/geom...lineline2d.php
-Отсортирую точки по общему весу (х+у) и по х
-У каждой точки будет свой х и у, массив ближайших точек и количество фигур которым может принадлежать точка

Затем буду брать в цикле:
- меньшую по весу точку
-из ее массива ближайших точек меньшую по весу точку
-от этой точки буду рассчитывать путь к начальной точке
-после завершения расчета пути уменьшаю фигуры в использованных точках. Если количество фигур равно нулю, то ставить запрет на использование точки в дальнейших расчетах.
И так пока все точки не закрою…


Последний раз редактировалось Genm; 28.09.2011 в 11:35.
Создать новую тему Ответ Часовой пояс GMT +4, время: 19:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:56.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.