Любой может объяснить об appendRotation, appendTranslation функции Matrix3D с ясным примером?Matrix3D - appendTranslation, appendRotation
ответ
Performing complex 3D transformations
В принципе, объяснение извлекут для преобразования трехмерного ортогонального базиса в 3D-пространстве с фиксированным базисом. Каждое преобразование можно рассматривать как состав преобразований и может (технически) разделяться на последовательность преобразований масштаба, вращения и трансляции. Порядок последовательности имеет значение.
Каждое «простое» преобразование, будь то поворот, масштаб, перевод или перспектива, описывается матрицей 4x4, известной в AS3, как Matrix3D
. Вы можете обратиться к Matrix
для преобразования 2D, потому что основной принцип тот же. Существует также матрица «нулевого преобразования», также известный как «матрица идентичности», которая описывает преобразование, где ничто не движется в любом месте, и это выглядит следующим образом:
[1,0,0,0]
[0,1,0,0]
[0,0,1,0]
[0,0,0,1]
Так что, когда вам нужно создать преобразование, вы начните с этой матрицы, затем вы начнете умножать ее вправо с помощью различных матриц, описывающих намеченные шаги.
appendTranslation
умножает матрицу с матрицей перевода, который выглядит следующим образом, где x
, y
, z
являются параметры:
[1,0,0,x]
[0,1,0,y]
[0,0,1,z]
[0,0,0,1]
appendScale
«s матрица выглядит следующим образом:
[xScale,0, 0, 0]
[0, yScale,0, 0]
[0, 0, zScale,0]
[0, 0, 0, 1]
appendRotation
создает матрицу, которая описывает поворот вокруг axis
, который начинается с pivotPoint
позиции в системе координат преобразованного объекта. Преобразование таково, что точка поворота и все точки, находящиеся на векторе оси, остаются на месте, а другие вращаются degrees
против часовой стрелки, если смотреть вниз по оси от точки поворота. Фактические примеры слишком тяжелы, чтобы рассчитать вручную, но простая матрица вращения вокруг оси может быть построен, то они выглядят так (cos
и sin
стоять Math.cos(angle)
и Math.sin(angle)
соответственно):
Вращение вокруг оси X:
[1,0, 0, 0]
[0,cos,-sin,0]
[0,sin,cos, 0]
[0,0, 0, 1]
Вращение вокруг оси Y:
[cos,0,-sin,0]
[0, 1,0, 0]
[sin,0,cos, 0]
[0, 0,0, 1]
Вращение вокруг оси Z:
[cos,-sin,0,0]
[sin,cos, 0,0]
[0, 0, 1,0]
[0, 0, 0,1]
После того, как вы добавите все необходимые матрицы с помощью функций appendXXX
, ваша матрица будет содержать значения, соответствующие полному преобразованию.
Этот topis требует дополнительного чтения, а его много, here - это некоторые ссылки на книги и учебные пособия по 3D-преобразованиям.
- 1. CSS3 преобразования matrix3d значения
- 2. matrix3D propertyValues и за
- 3. CSS matrix3D преобразования
- 4. Как зеркало Matrix3D?
- 5. Как перепроектировать преобразования webkit matrix3d
- 6. Extract -webkit-transform matrix3d values
- 7. CSS matrix3D преобразование по наведению
- 8. Matrix3D смещениями правильно, не добавляя
- 9. CSS3 matrix3d прямоугольник для преобразования трапеции
- 10. Матричная конкатенация с помощью ActionScript Matrix3D
- 11. Расчет CSS matrix3d неправильный, но почему?
- 12. Использование смещений для перевода в Matrix3D
- 13. css3 matrix3d преобразование для прямоугольной трапеции
- 14. Установить коэффициент/элемент Eigen :: Matrix3d в Cython
- 15. AS3 - Использование объектов Matrix3D для отображения переупорядочения
- 16. C# Matrix3D - что такое член «_matrix»?
- 17. Eigen: convert Matrix3d rotation to Quaternion
- 18. Вставка блока через Matrix3d может иметь атрибуты?
- 19. Вращение без искажений с использованием Matrix3D
- 20. Получить число циклов вращения CSS3 от matrix3d
- 21. Force Matrix3d или Scale3d для TweenMax?
- 22. rotateY() vs matrix3d переходы в Edge
- 23. Почему мой переход CSS не работает над свойством transform: matrix3d?
- 24. Как рассчитать размеры после применения Matrix3D к изображению
- 25. Использование 4x4 Matrix3D от flash10 для неаффинных 2D-преобразований
- 26. Quaternion slerp from matrix3d добавляет шаг поворота, рулон, рыскание AS3
- 27. Получить 3D CSS значение поворота от matrix3D() с JavaScript
- 28. rotate svg matrix3d transform in 180º firefox and opera yes
- 29. Matrix3D для положительного вращения вокруг z в WPF
- 30. Использование matrix3D для создания куба в качестве альтернативы нескольким преобразованиям?
Возможный дубликат [Может ли кто-нибудь порекомендовать несколько Матриц трансформации для манекенов?] (Http: // stackoverflow.ком/вопросы/2697611/может-кто-рекомендую-некоторые-преобразование-матрицы-учебники-для-чайников) – Vesper