Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Перевод системы координат в Евклидову (http://www.flasher.ru/forum/showthread.php?t=184203)

ShockWave512 13.09.2012 15:55

Перевод системы координат в Евклидову
 
Вложений: 1
Встала задача перевести координаты флешового displayObject в нормализованную Евклидову систему координат.
Она "слегка" отличается от флешовой, такую вроде в школе проходят для всех функциональных 2Д графиков.
Красный спрайт - родитель, от него считаются координаты, то есть его ширина и высота = (1,1),
положение=(0,0), координаты родителя в евклидовой будут =(х:-1, у:1), (ширина=2, высота=2)
Вопрос состоит в формуле перевода, у меня что то совсем ничего в голову не приходит :(
Картинку с пояснениями прилагаю. Техническое задание от заказчика тоже (в самом низу).
http://www.flasher.ru/forum/attachme...1&d=1347533329
Цитата:

Техническое задание.
(-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)).
используется нормализованная система

Tails 13.09.2012 16:14

Код AS3:

euclidY = -flashY;


ShockWave512 13.09.2012 16:40

Вложений: 1
2Tails - совсем не сходится, у меня еще исходная область становится "больше" в новом измерении
http://www.flasher.ru/forum/attachme...1&d=1347536439

Tails 13.09.2012 16:57

Код AS3:

var ration = 1.4;
euclidX = flashX*ration;
euclidY = -flashY*ration;

:)

ShockWave512 13.09.2012 17:03

Tails - 0.7 * 1.4 = 0.98
это спрайт почти на грани квадрата, совсем не то

Tails 13.09.2012 17:09

Ну я написал ответ на вопрос "Перевод системы координат в Евклидову". Она у вас на 1.4% "больше" флешовой, и отражена по y. Собственно формула и получается та, что я написал выше.

Или я вас не понял?

expl 13.09.2012 17:12

Офтопик: а в чём эскиз нарисован? А то может на вооружение инструмент взять

ShockWave512 13.09.2012 17:22

2expl - 3ds max

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

http://www.flasher.ru/forum/attachme...1&d=1347539226

Tails 13.09.2012 17:33

Координаты чего? Точки центра красного спрайта?
Если я правильно понял, вы хотите использовать его как контейнер?

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

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

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

i.o. 13.09.2012 17:45

ShockWave512, вы по какой формуле переводите "флеш" координаты в свои, что у вас площадь увеличивается аж 2 раза?


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

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