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

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

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

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
По умолчанию Перевод системы координат в Евклидову

Встала задача перевести координаты флешового displayObject в нормализованную Евклидову систему координат.
Она "слегка" отличается от флешовой, такую вроде в школе проходят для всех функциональных 2Д графиков.
Красный спрайт - родитель, от него считаются координаты, то есть его ширина и высота = (1,1),
положение=(0,0), координаты родителя в евклидовой будут =(х:-1, у:1), (ширина=2, высота=2)
Вопрос состоит в формуле перевода, у меня что то совсем ничего в голову не приходит
Картинку с пояснениями прилагаю. Техническое задание от заказчика тоже (в самом низу).

Цитата:
Техническое задание.
(-1, 1)--------(0, 1)--------(1, 1)
(-1, 0)--------(0, 0)--------(1, 0)
(-1, -1)-------(0, -1)-------(1, -1)
где точка (0, 0) центр спрайта
x и y - положение спрайта относительно центра всей области анимации
(если представить человека в профиль и выделить части голова, туловище, рука, нога,
то координаты спрайтов будут такие голова (0, 1), туловище (0, 0), рука (0, 0.5), нога (0, -0,5)).
используется нормализованная система
Миниатюры
Нажмите на изображение для увеличения
Название: euclid.jpg
Просмотров: 352
Размер:	81.6 Кб
ID:	28444  

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Код AS3:
euclidY = -flashY;
__________________
Дети не должны знать о своих родителях

Старый 13.09.2012, 16:40
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 3  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
2Tails - совсем не сходится, у меня еще исходная область становится "больше" в новом измерении
Миниатюры
Нажмите на изображение для увеличения
Название: euclid2.jpg
Просмотров: 312
Размер:	66.1 Кб
ID:	28445  

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Код AS3:
var ration = 1.4;
euclidX = flashX*ration;
euclidY = -flashY*ration;
__________________
Дети не должны знать о своих родителях

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

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
Tails - 0.7 * 1.4 = 0.98
это спрайт почти на грани квадрата, совсем не то

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Ну я написал ответ на вопрос "Перевод системы координат в Евклидову". Она у вас на 1.4% "больше" флешовой, и отражена по y. Собственно формула и получается та, что я написал выше.

Или я вас не понял?
__________________
Дети не должны знать о своих родителях

Старый 13.09.2012, 17:12
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 7  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Офтопик: а в чём эскиз нарисован? А то может на вооружение инструмент взять

Старый 13.09.2012, 17:22
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 8  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
2expl - 3ds max

2Tails - согласен что я мог коряво все это описать, но там видно на рисунке что "площадь" увеличивается ровно в 2-а раза (200%), а координата центра "уходит в евклидову" (-1, 1), а координата максимальной "положительной" точки в (1, -1), самое сложное тут не преобразование размера объекта, тут очень все мутно для меня с координатами


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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Координаты чего? Точки центра красного спрайта?
Если я правильно понял, вы хотите использовать его как контейнер?

Сделайте тогда точку регистраций красного спрайта в верхнем левом углу, это сделает задачу на 20% проще.

Объясните что это у вас за зелёный квадрат который вам нужно двигать, где он находиться ? Внутри красного квадрата?

Объясните причём тут евклидовое пространство, нужно вводить и выводить координаты в нём?
__________________
Дети не должны знать о своих родителях

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

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
ок, по порядку
Цитата:
Сообщение от Tails Посмотреть сообщение
Координаты чего? Точки центра красного спрайта?
Если я правильно понял, вы хотите использовать его как контейнер?
координата центра счисления (0,0), красный спрайт используется только как "исходное" пространство для отсчета, в "реальности" в пикселях он может быть и 100*200, 1.9*577.1, то есть совсем абстрактная площадь, не суть
Цитата:
Сообщение от Tails Посмотреть сообщение
Сделайте тогда точку регистраций красного спрайта в верхнем левом углу, это сделает задачу на 20% проще.
не могу, красный квадрат это абстрактная вещь, она не может быть нигде кроме центра отсчёта, по сути её вообще нет, её нарисовал для наглядности, чтоб было видно как трансформируется пространство координат
Цитата:
Сообщение от Tails Посмотреть сообщение
Объясните что это у вас за зелёный квадрат который вам нужно двигать, где он находиться ? Внутри красного квадрата?
зеленый квадрат не двигается, он для пояснения, как точка в обоих координатных пространствах, то что он внутри красного квадрата, показывает его положение, он не может существовать вне его, его положение за красным вообще не рассматривается
Цитата:
Сообщение от Tails Посмотреть сообщение
Объясните причём тут евклидовое пространство, нужно вводить и выводить координаты в нём?
да, мне нужно конвертировать координаты всех детей мувиклипа в указанные

вот исходник текста тех. задания, на всякий
Цитата:
Переделать экспорт анимации из редактора
формат такой

{
"loopCount": "integer",
"sprites": [{
"name": "string",
"anchorX": "float",
"anchorY": "float",
"id": "integer"
}, …
],
"animations": [{"frame": [{"id": "integer",
"x": "float",
"y": "float",
"r": "float",
"z": "integer",
"t": "float"
}, …
],...
},…
],
}

loopCount = 0 анимация зациклена. иначе повторяется столько раз, сколько указано

Массив sprites содержит информацию о всех спрайтах анимации
name - название спрайта (без расширения)
anchorX и anchorY - координаты якорной точки вокруг которой будет крутиться спрайт. использует нормализованную евклидову координатную систему, т.е.
(-1, 1)--------(0, 1)--------(1, 1)
(-1, 0)--------(0, 0)--------(1, 0)
(-1, -1)-------(0, -1)-------(1, -1)
где точка (0, 0) центр спрайта
id - уникальный номер спрайта

массив animations содержит все кадры анимации (состоит из элементов frame)

массив frame содержит информацию о всех ВИДИМЫХ (если информации о спрайте в конкретном кадре нет, значит его не видно) спрайтах данного кадра
id - ссылка на спрайт из массива sprites
x и y - положение спрайта относительно центра всей области анимации (если представить человека в профиль и выделить части голова, туловище, рука, нога, то координаты спрайтов будут такие голова (0, 1), туловище (0, 0), рука (0, 0.5), нога (0, -0,5)). используется нормализованная система (см. выше)
r - угол поворота спрайта (против часовой стрелки, в градусах)
z - z order спрайта. 0 - самый дальний слой. чем больше цифра, тем выше слой
t - время показа кадра (в сек)

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

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

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


 


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


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