![]() |
Перевод системы координат в Евклидову
Вложений: 1
Встала задача перевести координаты флешового displayObject в нормализованную Евклидову систему координат.
Она "слегка" отличается от флешовой, такую вроде в школе проходят для всех функциональных 2Д графиков. Красный спрайт - родитель, от него считаются координаты, то есть его ширина и высота = (1,1), положение=(0,0), координаты родителя в евклидовой будут =(х:-1, у:1), (ширина=2, высота=2) Вопрос состоит в формуле перевода, у меня что то совсем ничего в голову не приходит :( Картинку с пояснениями прилагаю. Техническое задание от заказчика тоже (в самом низу). http://www.flasher.ru/forum/attachme...1&d=1347533329 Цитата:
|
Код AS3:
|
Вложений: 1
2Tails - совсем не сходится, у меня еще исходная область становится "больше" в новом измерении
http://www.flasher.ru/forum/attachme...1&d=1347536439 |
Код AS3:
|
Tails - 0.7 * 1.4 = 0.98
это спрайт почти на грани квадрата, совсем не то |
Ну я написал ответ на вопрос "Перевод системы координат в Евклидову". Она у вас на 1.4% "больше" флешовой, и отражена по y. Собственно формула и получается та, что я написал выше.
Или я вас не понял? |
Офтопик: а в чём эскиз нарисован? А то может на вооружение инструмент взять
|
2expl - 3ds max
2Tails - согласен что я мог коряво все это описать, но там видно на рисунке что "площадь" увеличивается ровно в 2-а раза (200%), а координата центра "уходит в евклидову" (-1, 1), а координата максимальной "положительной" точки в (1, -1), самое сложное тут не преобразование размера объекта, тут очень все мутно для меня с координатами http://www.flasher.ru/forum/attachme...1&d=1347539226 |
Координаты чего? Точки центра красного спрайта?
Если я правильно понял, вы хотите использовать его как контейнер? Сделайте тогда точку регистраций красного спрайта в верхнем левом углу, это сделает задачу на 20% проще. Объясните что это у вас за зелёный квадрат который вам нужно двигать, где он находиться ? Внутри красного квадрата? Объясните причём тут евклидовое пространство, нужно вводить и выводить координаты в нём? |
ShockWave512, вы по какой формуле переводите "флеш" координаты в свои, что у вас площадь увеличивается аж 2 раза?
|
ок, по порядку
Цитата:
Цитата:
Цитата:
Цитата:
вот исходник текста тех. задания, на всякий Цитата:
|
Во флеше абсолютно такая же евклидова система координат, только Y напрвлен вниз, а не вверх. Откуда такие промахи в расчетах я просто недоумеваю
|
Цитата:
площадь на самом деле не увеличивается, это так описана задача на картинке, что она увеличена, на самом деле она так визуально выглядит при переходе из одной системы координат в другую, нельзя говорить что у объекта изменилась площадь, она осталась прежней, но описана в другой системе отсчета |
Ну так если масштабирования нет, координаты в эвклиде будут те-же, только игрик сменит знак и всё.
|
Цитата:
|
Цитата:
а новая от -1 до 1 масштабирование, есть но выглядит оно по другому если у вас есть теория, просто посчитайте её на тестовых исходных точках например (0.1, 0.1) и (0.9, 0.9), если точка выползает за красное, значит ошибка, если точка находится в другом квадранте (например правый нижний сменился на левый верхний) тоже где то ошибка |
Опробуйте
Код AS3:
|
Раз масштабирование в 2 раза, то и умножайте координаты на 2:
Код AS3:
Код AS3:
|
Вложений: 1
i.o. - спасибо, огромное, работает!
пока не поместил на макет, думал что не правильно :) http://www.flasher.ru/forum/attachme...1&d=1347546485 |
Похоже, что топикстартер запутался. В задании ничего не говорится о том, что масштаб координатных систем различается.
Цитата:
|
Цитата:
|
| Часовой пояс GMT +4, время: 20:27. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.