Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Помогите обратить функцию (http://www.flasher.ru/forum/showthread.php?t=141555)

OlegEF 28.06.2010 14:51

Помогите обратить функцию
 
Не соображу в математике. Нужно вывести систему уравнений


Код AS1/AS2:

function set_cube(i, j, k)
{
x1 = xCoord+20*k;
y1 = yCoord-20*j;
z1 = 10*i;
 
arr[n]._x=x1-z1*Math.SQRT1_2;
arr[n]._y=y1+z1*Math.SQRT1_2;
}

Нужно написать обратную функцию вида getIJK(x1,y1)
выдающую на выходе массив i, j, k

Проблема исключительно в математике т.е.

Код AS1/AS2:

function getIJK(x1, y1):Array
{
  var i,j,k;
  //тут нужны формулы преобразования
  return new Array(i,j,k);
}

Добавлено через 5 часов 59 минут
Пришел к системе уравнений:

Код:

i = (arr_y - yCoord - 20*j) / 10 * Math.SQRT1_2;
j = (yCoord - arr_y - 10*i*Math.SQRT1_2) / 20;
k = (arr_x + 10*i*Math.SQRT1_2 - xCoord) / 20;

Помогите решить

rainbowrussia 29.06.2010 01:48

Если я правильно понял, то функция set_cube преобразует трехмерные координаты точки в двухмерные с учетом перспективы. Обратное преобразование невозможно, ибо каждой точке (x1, y1) не будет однозначно соответствовать единственное значение (i, j, k). В результате обратного преобразования получится не точка, а кривая (в данном случае, скорее всего, прямая), которая в перспективе вырождается в точку.

OlegEF 29.06.2010 20:06

Спасибо за помощь!


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

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