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

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

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

Регистрация: Apr 2010
Сообщений: 170
По умолчанию Из экранных координат в координаты 2.5D проекции

Всем доброго вечера!

Из координат 2.5D проекции в экранные координаты я перевожу следующим образом:

Код AS3:
screenX=offset+x*w/2-y*w/2;
screenY=x*h/2+y*h/2;
Теперь надо реализовать обратное преобразование. На листочке накидал систему уравнений. На скорую руку попробовал её решить и вот что у меня получилось:

Код AS3:
x=(2*mouseX*h-2*offset*h+2*mouseY*w)/(w*h+w);
y=(2*mouseY-x*h)/h;
Но что-то результат далеко не верный. Есть ли у кого-то готовая формула?

Старый 01.03.2012, 21:51
Stitch512 вне форума Посмотреть профиль Отправить личное сообщение для Stitch512 Найти все сообщения от Stitch512
  № 2  
Ответить с цитированием
Stitch512

Регистрация: Nov 2010
Сообщений: 150
Код AS3:
x = (w*screenY+h*screenX-h*offset)/(h*w);
y = -(h*screenX-h*offset-w*screenY)/(h*w);
Добавлено через 1 минуту
Это не готовая формула, это решения вашего уравнения (в Maple решил для гарантии).

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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Как это у вас получилось? из первых ур-ний следуют вот такие:
x=((screenX-offset)/w+screenY/h)
y=(screenY/h-(screenX-offset)/w)
вероятно, screenX->mouseX.
Если кому-то не нравятся мои уравнения, прошу писать здесь и сразу.

Старый 01.03.2012, 21:56
Stitch512 вне форума Посмотреть профиль Отправить личное сообщение для Stitch512 Найти все сообщения от Stitch512
  № 4  
Ответить с цитированием
Stitch512

Регистрация: Nov 2010
Сообщений: 150
Цитата:
(в Maple решил для гарантии)
В плане решения систем уравнений я склонен ему доверять, как то не вижу смысла решать на бумажке если есть возможность автоматизировать процесс.

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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Цитата:
не вижу смысла решать на бумажке если есть возможность автоматизировать процесс
Вот это вы зря. Доверяй, но проверяй. Maple неоднократно подводил (простых уравнений это, конечно не касается, но все же)

Старый 01.03.2012, 22:00
Stitch512 вне форума Посмотреть профиль Отправить личное сообщение для Stitch512 Найти все сообщения от Stitch512
  № 6  
Ответить с цитированием
Stitch512

Регистрация: Nov 2010
Сообщений: 150
Цитата:
Если кому-то не нравятся мои уравнения, прошу писать здесь и сразу.
А это решения для тех уравнений которые вы прислали)
Код AS3:
screenX = -1/2*y*w+offset;
screenY = 1/2*y*h;
Добавлено через 1 минуту
Цитата:
Вот это вы зря. Доверяй, но проверяй. Maple неоднократно подводил (простых уравнений это, конечно не касается, но все же)
Ну не знаю, меня еще ни разу не подвел, да это и не сложные уравнения.

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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Цитата:
А это решения для тех уравнений которые вы прислали)
Не удивительно, что у вас ничего не получилось первый раз)

Добавлено через 1 минуту
Из "моих" непосредственно получаются "ваши"

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

Регистрация: Nov 2010
Сообщений: 150
Цитата:
Не удивительно, что у вас ничего не получилось первый раз)
Эээ... В смысле... Какой первый раз. Да и че спорить то, пущай человек подставит оба варианта решений и проверит какой рабочий.

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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
А, прошу прощения, я вас с автором перепутал=)

Добавлено через 36 секунд
Причем, хочу заметить, что наши с вами решения полностью эквиваленты.

Добавлено через 1 минуту
Если мое решение домножить и поделить на w*h, получится ваше

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

Регистрация: Nov 2010
Сообщений: 150
Кстати оба варианта рабочие - выдают одни и те же решения при одинаковых входных данных)

Добавлено через 1 минуту
ну то есть это, собственно, одни и те же формулы

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

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

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


 


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


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