Это читается как «x штрих». Когда она изменяется дважды (как мы делаем в данном случае), она называется xpp (или x’’). Это читается как «x два штриха». Так что мы начинаем с (xpp, ypp, zpp), и после первого вращения получим (xp, yp, zp). После второго вращения мы получим (x, y, z). Ну, давайте приступим.
Мы начинаем в изометрической системе с точки (xpp, ypp, zpp). Для проецирования ее в систему Flash мы должны пройти через два угла. Мы работаем с ними по одному. Сначала мы будем проецировать координаты в промежуточную систему, путем вращения их вокруг оси y на 45? для получения трех новых координат (xp, yp, zp):
xp =xpp *cos(45)+zpp *sin(alpha)
yp =ypp
zp =zpp *cos(45)–xpp *sin(alpha)
Обратите внимание, что yp эквивалентна ypp. Это потому, что система была повернута вокруг оси y, так что координата y не изменилась. Далее мы вращаем координаты (xp, yp, zp) вокруг оси x на 30? для получения координат (x, y, z) в системе Flash:
x =xp
y =yp *cos(30)–zp *sin(30)
z =zp *cos(30)+yp *sin(30)
Теперь у нас есть координаты точки, где (xpp, ypp, zpp) должна появляться в системе Flash. Вы можете заметить, что в то время, когда мы заканчиваем с (x, y, z), мы по-прежнему не имеем настоящей оси z во Flash. Как упоминалось ранее, мы можем представить ось z, которая входит в экран монитора. Это представление помогает, когда приходится делать вещи, подобные проецированию из 3D в систему Flash. Клип имеет свойства _x и _y, но не имеет свойства _z. Так что, когда вышеприведенная математика преобразуется в код ActionScript, мы можем забыть о последней координате z. Если бы мы не использовали изометрический вид, мы, по всей вероятности, захотели бы иметь изменения перспективы в реальном масштабе времени. В этом случае вам понадобилась бы эта z-координата для вращения вокруг нее, потому что вы захотели бы использовать ее для расчета перспективы. В случае нашей изометрии, однако, нам это не нужно.
Давайте рассмотрим работающий пример того, как позиционировать объект, если его координаты даны в изометрической системе