1: A matrix is basically an array of number arranged in a rectangular pattern. The matrices used in C4D, represented by the class Matrix, consist of four rows and four columns, i.e. they have the dimension 4x4. The first row is always "1, 0, 0, 0", which means that there are 12 numbers that are used. These numbers are grouped into four vectors, one for the remaining numbers in each column. The four vectors are called v0, v1, v2 and v3:
2: Together these four vectors can be used to represent the coordinate system for a C4D object. A coordinate system consists of three axes, one for each coordinate (X, Y and Z). The system also has a base position, from which the three axes originate. This base position is stored in v0, and the three axis vectors are stored in v1, v2 and v3 respectively:
Vector Contains
v0 position
v1 X-axis
v2 Y-axis
v3 Z-axis
3: A matrix is enough to store all the three important properties of an object: position, rotation and scale. (The position is stored in the first vector, the rotation is given by the direction of the three axis vectors and the scale is given by their length.) Therefore each object has a matrix that you can get.This surely seems like a convenient way to group position, rotation and scale. But ;SetRotation() and obj;SetScale() work just fine already. Why do we need to use matrices? The answer is: to handle object hierarchies. If you want to compare the position of two objects that are both deeply hidden within several layers of parents, obj position() won't help much; it'll only give you their local coordinates.
2: Together these four vectors can be used to represent the coordinate system for a C4D object. A coordinate system consists of three axes, one for each coordinate (X, Y and Z). The system also has a base position, from which the three axes originate. This base position is stored in v0, and the three axis vectors are stored in v1, v2 and v3 respectively:
Vector Contains
v0 position
v1 X-axis
v2 Y-axis
v3 Z-axis
3: A matrix is enough to store all the three important properties of an object: position, rotation and scale. (The position is stored in the first vector, the rotation is given by the direction of the three axis vectors and the scale is given by their length.) Therefore each object has a matrix that you can get.This surely seems like a convenient way to group position, rotation and scale. But ;SetRotation() and obj;SetScale() work just fine already. Why do we need to use matrices? The answer is: to handle object hierarchies. If you want to compare the position of two objects that are both deeply hidden within several layers of parents, obj position() won't help much; it'll only give you their local coordinates.
http://www.maxon/ computer cinema 4d
No comments:
Post a Comment