Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Из экранных координат в координаты 2.5D проекции (http://www.flasher.ru/forum/showthread.php?t=176086)

s3dworld 01.03.2012 19:50

Из экранных координат в координаты 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;

Но что-то результат далеко не верный. Есть ли у кого-то готовая формула?

Stitch512 01.03.2012 21:51

Код AS3:

x = (w*screenY+h*screenX-h*offset)/(h*w);
y = -(h*screenX-h*offset-w*screenY)/(h*w);

Добавлено через 1 минуту
Это не готовая формула, это решения вашего уравнения (в Maple решил для гарантии).

Silicium 01.03.2012 21:54

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

Stitch512 01.03.2012 21:56

Цитата:

(в Maple решил для гарантии)
В плане решения систем уравнений я склонен ему доверять, как то не вижу смысла решать на бумажке если есть возможность автоматизировать процесс.

Silicium 01.03.2012 21:59

Цитата:

не вижу смысла решать на бумажке если есть возможность автоматизировать процесс
Вот это вы зря. Доверяй, но проверяй. Maple неоднократно подводил (простых уравнений это, конечно не касается, но все же)

Stitch512 01.03.2012 22:00

Цитата:

Если кому-то не нравятся мои уравнения, прошу писать здесь и сразу.
А это решения для тех уравнений которые вы прислали)
Код AS3:

screenX = -1/2*y*w+offset;
screenY = 1/2*y*h;

Добавлено через 1 минуту
Цитата:

Вот это вы зря. Доверяй, но проверяй. Maple неоднократно подводил (простых уравнений это, конечно не касается, но все же)
Ну не знаю, меня еще ни разу не подвел, да это и не сложные уравнения.

Silicium 01.03.2012 22:09

Цитата:

А это решения для тех уравнений которые вы прислали)
Не удивительно, что у вас ничего не получилось первый раз)

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

Stitch512 01.03.2012 22:11

Цитата:

Не удивительно, что у вас ничего не получилось первый раз)
Эээ... В смысле... Какой первый раз. Да и че спорить то, пущай человек подставит оба варианта решений и проверит какой рабочий.

Silicium 01.03.2012 22:12

А, прошу прощения, я вас с автором перепутал=)

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

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

Stitch512 01.03.2012 22:17

Кстати оба варианта рабочие - выдают одни и те же решения при одинаковых входных данных)

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


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

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