![]() |
Преобразования с матрицей
Доброго времени суток! Как повернуть 2D матрицу, что бы она смотрела в направлении 2D вектора? Вопрос относится скорее к алгебре чем к AS3, но все же!:)
|
по отдельности ( повернуть - Matrix#rotate, угол - Math.atan2) какбе понятно
а вместе, ну что бы она смотрела куда-то что-то не складывается, матрица вообще куда смотрит ? может переформулируешь |
Например если вектор (0.70,0.70), то он повернут на 45° нужно, что бы и матрица была повернута на 45° Надо как то хитро подставить координаты вектора в матрицу.
[0.70 0.70 a b ] Вот a и b не знаю как найти. |
Код AS3:
|
А нет ли способа по проще, без тригонометрии? Нельзя ли решить дело подстановкой?
|
На сколько я понимаю, нет, да и быть не может, т.е. можно те же действия сделать по другому, например:
Код:
[cos(a), -sin(a)] |
коэффициенты матрицы это синусы/косинусы этого вектора, можно их напрямую считать и подставлять
только мне не кажется, что это проще Добавлено через 2 минуты wvxvw, угол можно и не считать, типа cos=x/sqrt(x^2+y^2) |
Вот просветите, matrix и matrix3D как то по разному просчитываются? Я повернул обе матрицы на -90 градусов и получил неодинаковые результаты. Например, насколько я понимаю, второй элемент matrix3D(вторая цифра trace) эквивалентен с элементу matrix, но они имеют разные знаки!
Код AS3:
|
Цитата:
2d: ax, ay, 0 bx, by, 0 tx, ty, 1 или так, в терминологии as3 a, b, 0 c, d, 0 tx, ty, 1 3d: ax, ay, az, 0 bx, by, bz, 0 cx, cy, cz, 0 tx, ty, tz, 1 Вот и смотри, какие коэффициенты должны быть равны. |
vizgl Так разве c и bx не должны быть равны?
2d: a, b, 0 c, d, 0 tx, ty, 1 3d: ax, ay, az, 0 bx, by, bz, 0 cx, cy, cz, 0 tx, ty, tz, 1 Я даже на бумажке, в ручную повернул и с должен быть -1 а,с это вектор оси х равный (1,0), при повороте его на -90 он будет равен (0,-1), но никак не (0,1) Это если для флешевского пространства координат где ось у направленна вниз. |
| Часовой пояс GMT +4, время: 10:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.