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

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

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

Регистрация: Mar 2013
Сообщений: 156
По умолчанию Разместить объекты в области

Здравствуйте
Подскажите пожалуйста как реализовать следующую задачу.
Есть 5 объектов и есть 4 области. Из объекта создаются его экземпляры N-количество раз (случайную генерацию я реализую).
Нужно разместить экземпляры в области случайным образом, чтобы они друг на друга не налаживались. Области могут иметь разную форму (например, как на картинке).
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 9
Размер:	5.7 Кб
ID:	33237  

Старый 24.07.2018, 12:47
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 2  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 341
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
у нас есть hitTestObject
Если необходимо, чтобы четко по контуру пересечение было (так как hitTestObject смотрит пересечение именно ограничительной рамки, то есть, квадрат, в который вписывается объект), то применив смекалку, можно, опять же, решить эту проблему при помощи hitTestObject.

Также можно в объектах создать массив точек, по которому будем проверять пересечение. Собственно, это аналогично первому варианту, только там это можно сделать через много мувиков внутри объекта, а тут можно просто кодом описать те же самые векторы координат.
__________________
while(live()) { hope(); }

Старый 24.07.2018, 13:36
art_maestro вне форума Посмотреть профиль Отправить личное сообщение для art_maestro Найти все сообщения от art_maestro
  № 3  
Ответить с цитированием
art_maestro

Регистрация: Mar 2013
Сообщений: 156
За hitTestObject я знаю. Но проблема в том, как "заставить" объекты пересечь необходимую область. Например, если использовать Drag & Drop ,то пользователь сам перемещал объект на указанную область и срабатывала проверка с помощью функции hitTestObject , а в данном случае получается необходимо использовать массив точек только?

Или прописывать объекту координаты области в которую хочу его поместить, а дальше запускать функцию расстановки объектов, чтобы они не пересекались в области.

Старый 24.07.2018, 13:55
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 4  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 341
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
Не очень понял. Так нужно, чтоб они пересекались, или не нужно? Все выглядит довольно очевидно: создаем рандомные координаты, проверяем их на hitTest, если пересекаются - пересоздаем. И так пока не профит.
__________________
while(live()) { hope(); }

Старый 24.07.2018, 17:36
art_maestro вне форума Посмотреть профиль Отправить личное сообщение для art_maestro Найти все сообщения от art_maestro
  № 5  
Ответить с цитированием
art_maestro

Регистрация: Mar 2013
Сообщений: 156
Объекты должны пересекаться с областью (с любой). Но между собой объекты пересекаться на одной области не должны.

Я понял. Нужно постоянно рандомно получать координаты пока они не будут пересекаться хоть с одной из областей.
Получается, чтобы объекты не налаживались друг на друга (в области) необходимо так же использовать hitTest?

Старый 26.07.2018, 14:19
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 6  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,248
объекты можно заменить ограничивающими прямоугольниками?Например, чтоб оптимально упаковать подковообразные объекты, придется учитывать,что они имеют невыпуклую форму.

Старый 27.07.2018, 19:43
art_maestro вне форума Посмотреть профиль Отправить личное сообщение для art_maestro Найти все сообщения от art_maestro
  № 7  
Ответить с цитированием
art_maestro

Регистрация: Mar 2013
Сообщений: 156
Я сделал объекты одинаковой формы (деревья), вроде что-то вырисовывается. Но надо теперь разобраться как сделать, чтобы объекты не налаживались друг на друга

Старый 30.07.2018, 12:54
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 8  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 341
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
видимо, где-то лажа, вот они и налаживаются
__________________
while(live()) { hope(); }

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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