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

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

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

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
По умолчанию Расставить объекты по контуру Sprit -a

Всем привет , помогите решить проблему
есть серый овал-спрайт, отрисованный с помощью drawPath по точкам
Название: forum1.JPG
Просмотров: 532

Размер: 4.0 Кб
и допустим есть комбо бокс, через который выбирается количество синих квадратов.
Синие квадраты тоже рисуются через drawPath.
синие квадраты в зависимости от количества должны расставиться по контуру овала(не в разброс, как через равные расстояния), причем должны повернуться не к центру, а таким образом:
Название: forum2.JPG
Просмотров: 491

Размер: 6.5 Кб
то есть к линии , проходящей через точки пересечения овала и квадрата.
Может кто что подсказать, уже 2 день бьюсь.

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Вам только для овалов?
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 06.02.2013, 14:59
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 3  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
нет, объекты любой формы, даже может быть группа из двух объектов, "засунутых " в один спрайт

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

Регистрация: Jan 2009
Сообщений: 1,651
Ну, есть ,скажем, параметрическое уравнение эллипса.

а и b - радиусы, если что. t принадлежит промежутку [0,2PI].

Делим период [0,2PI] на количество квадратов, которые нам надо разместить и размещаем их в полученных промежутках.

Так, теперь осталось только развернуть эти квадраты, чтобы они лежали на касательной.
Уравнение касательной к эллипсу
Подставляем имеющиеся a,b и приводим полученное к обычному виду уровнения прямой y = kx + b. Потому что, как известно в этом уравнении прямой k = tg (alfa), т.е. нужный нам угол равен arctg(k).

Как то, примерно, так.

--upd--
А если для объектов любой формы, то это довольно сложно. Это вам нужно уровнение сплайнов будет использовать, ну и касательная к ним, чтобы найти угол - это производная уровнения сплайна будет.
__________________
мой пустой блог

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Если обводить кривой Безье, то можно использовать готовую библиотеку.

Добавлено через 25 минут
Немного теории.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 06.02.2013, 17:10
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 6  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
тоесть в любом случае придется считать периметр , делить его на отрезки, и по длинам этих отрезков высчитывать на какую кривую(или прямую) попадает точка?

Цитата:
Сообщение от iflamberg Посмотреть сообщение
Это вам нужно уровнение сплайнов будет использовать, ну и касательная к ним, чтобы найти угол - это производная уровнения сплайна будет.
а можете какую нибудь ссылочку дать хорошую по уравнению сплайнов?


Последний раз редактировалось Isfet; 06.02.2013 в 17:35.
Старый 06.02.2013, 17:35
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 7  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Нет. Достаточно по формуле найти точку на кривой и получить к ней перпендикуляр или касательную.
__________________
משיח לא בא
משיח גם לא מטלפן

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

Регистрация: Jan 2009
Сообщений: 1,651
Цитата:
а можете какую нибудь ссылочку дать хорошую по уравнению сплайнов?
Там вам alatar выше постами интересных ссылок накидал.
Цитата:
Нет. Достаточно по формуле найти точку на кривой и получить к ней перпендикуляр или касательную.
А как, не вычислив длину отрезка, топикстартер сможет равномерно разместить N квадратов на ней?
__________________
мой пустой блог

Старый 06.02.2013, 17:41
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 9  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Почитайте о B-Spline и NURBS.

Добавлено через 8 минут
Цитата:
А как, не вычислив длину отрезка, топикстартер сможет равномерно разместить N квадратов на ней?
Для Bezier Curve есть параметр t от 0 до 1, где 0 соответствует началу кривой, а 1 концу.

Добавлено через 9 минут
http://en.wikipedia.org/wiki/File:Bezier_4_big.gif
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 07.02.2013, 07:33
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 10  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
Цитата:
Для Bezier Curve есть параметр t от 0 до 1, где 0 соответствует началу кривой, а 1 концу.
но фигура нарисована 4 кривыми безье, и как я понимаю параметр t - пропорционален длине кривой, но в кривых разной длины эта пропорция разная, тоесть чтобы равномерно выставить все-таки(хоть и очень не хотелось) высчитывать длину кривой.

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

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

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


 


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


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