Могу ли я получить базовое объяснение CATransform3DIdentity? - PullRequest
7 голосов
/ 20 августа 2011

Я постепенно становлюсь более серьезным в отношении Core Animation и буду очень признателен за объяснение, состоящее из коротких слов (напечатанных?), Медленно объясняющих CATransform3DIdentity и почему следующий код делает то, что делает (переворачивает слой в «трехмерном» пространстве)

    kFaceUpTransform = kFaceDownTransform = CATransform3DIdentity;
    // Construct a 180-degree rotation matrix:
    kFaceDownTransform.m11 = kFaceDownTransform.m33 = -1;

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

PS.У меня складывается впечатление, что я должен чувствовать себя намного более комфортно с линейной алгеброй, если я хочу продвинуться гораздо дальше с анимацией ... это правильно?

1 Ответ

14 голосов
/ 20 августа 2011

CATransform3DIdentity - это матрица идентичности:

http://en.wikipedia.org/wiki/Identity_matrix

В основном матрицы в анимационной математике используются для преобразования объекта (наклон, перемещение, поворот и т. Д.).

Идентификационная матрица - это матрица, которая при применении к объекту сбрасывает его в исходную географию.

ex.
[1 0 0]
[0 1 0]
[0 0 1]

Это нелегко объяснить (я действительно не понимаю себя честно), но эти 3x3Матрицы используют местоположение сетки (m11, m33), чтобы определить, как преобразовать объект, в этом случае m11 заставляет его вращаться на 180 градусов, установить его в +1, и он будет вращаться в другом направлении.Установите его на 0,5, и он будет вращаться на 90 градусов (iirc!).

ex.
[m11, m12, m13]
[m21, m22, m23]
[m31,M32, M33]

Это немного страшно, но фотографии здесь вид помощи:

http://en.wikipedia.org/wiki/Matrix_(mathematics)#Linear_transformations

и здесь

http://en.wikipedia.org/wiki/Transformation_matrix

Наконец, таблица внизу этого списка показывает, как используются различные поля матрицы:

Предоставляется через «машину обратного хода в Интернете»: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreAnimation_guide/Articles/Layers.html

Наконец,Я вспоминаю, что читал это некоторое время назад, это могло бы помочь, поскольку я думаю, что мои объяснения выше не очень удобны - я говорю вам что, а не почему - и поверьте мне, вы должны знать, почему попасть в такого родадля правильного программирования:

http://chortle.ccsu.edu/vectorlessons/vectorIndex.html

Удачи!

...