A quaternion type has scalar, x, y, and z attributes. 更多...
A
quaternion
类型拥有
scalar
,
x
,
y
and
z
属性。
要创建
quaternion
value, specify it as a "scalar,x,y,z" string, or define the components individually, or compose it with the Qt.quaternion() function.
The quaternion type has the following idempotent functions which can be invoked in QML:
函数签名 | 描述 | 范例 |
---|---|---|
real dotProduct(quaternion other) |
Returns the scalar real result of the dot product of
this
quaternion with the
other
quaternion
|
var a = Qt.quaternion(1,2,3,4); var b = Qt . quaternion( 5 , 6 , 7 , 8 ); var c = a . dotProduct(b); console . log(c); // 70 |
quaternion times(quaternion other) |
Returns the quaternion result of multiplying
this
quaternion with the
other
quaternion, which corresponds to applying both of the rotations
|
var a = Qt.quaternion(1 / Math.sqrt(2), 1 / Math.sqrt(2), 0, 0); var b = Qt . quaternion( 1 / 数学 . sqrt( 2 ) , 0 , 1 / 数学 . sqrt( 2 ) , 0 ); var c = b . times(a); console . log(c . toString()); // QQuaternion(0.5, 0.5, 0.5, -0.5) |
vector3d times(vector3d vector) |
Returns the vector3d result of rotating the
vector
with
this
quaternion
|
var a = Qt.quaternion(0.5,0.5,0.5,-0.5); var b = Qt . vector3d( 4 , 5 , 6 ); var c = a . times(b); console . log(c . toString()); // QVector3D(5, -6, -4) |
quaternion times(real factor) |
Returns the quaternion result of multiplying
this
quaternion with the scalar
factor
|
var a = Qt.quaternion(1,2,3,4); var b = 4.48 ; var c = a . times(b); console . log(c . toString()); // QQuaternion(4.48, 8.96, 13.44, 17.92) |
quaternion plus(quaternion other) |
Returns the quaternion result of the addition of
this
quaternion with the
other
quaternion
|
var a = Qt.quaternion(1,2,3,4); var b = Qt . quaternion( 5 , 6 , 7 , 8 ); var c = a . plus(b); console . log(c . toString()); // QQuaternion(6, 8, 10, 12) |
quaternion minus(quaternion other) |
Returns the quaternion result of the subtraction of
other
quaternion from
this
quaternion
|
var a = Qt.quaternion(1,2,3,4); var b = Qt . quaternion( 5 , 6 , 7 , 8 ); var c = a . minus(b); console . log(c . toString()); // QQuaternion(-4, -4, -4, -4) |
quaternion normalized() |
Returns the normalized unit form of
this
quaternion
|
var a = Qt.quaternion(1,2,3,4); var b = a . normalized(); console . log(b . toString()); // QQuaternion(0.182574, 0.365148, 0.547723, 0.730297) |
quaternion inverted() |
Returns the inverse of
this
quaternion
|
var a = Qt.quaternion(0.5,0.5,0.5,-0.5); var b = a . inverted(); console . log(b . toString()); // QQuaternion(0.5, -0.5, -0.5, 0.5) |
quaternion conjugated() |
Returns the conjugate of
this
quaternion
|
var a = Qt.quaternion(1,2,3,4); var b = a . conjugated() console . log(b . toString()); // QQuaternion(1, -2, -3, -4) |
real length() |
Returns the scalar real value of the length of
this
quaternion
|
var a = Qt.quaternion(1,2,3,4); var b = a . length(); console . log(b . toString()); // 5.477225575051661 |
vector3d toEulerAngles() |
Returns the vector3d Euler angles (in degrees) that corresponds to
this
quaternion
|
var a = Qt.quaternion(0.933012,0.25,-0.25,0.066987); var b = a . toEulerAngles(); console . log(b . toString()); // QVector3D(30, -30, -4.28846e-05) |
vector4d toVector4d() |
Returns the vector4d result of converting
this
quaternion to a vector4d
|
var a = Qt.quaternion(1,2,3,4); var b = a . toVector4d(); console . log(b . toString()); // QVector4D(2, 3, 4, 1) |
bool fuzzyEquals(quaternion other, real epsilon) |
返回 true 若
this
quaternion is approximately equal to the
other
quaternion. The approximation will be true if each attribute of
this
is within
epsilon
of
other
。注意,
epsilon
is an optional argument, the default
epsilon
is 0.00001.
|
var a = Qt.quaternion(1,2,3,4); var b = Qt . quaternion( 1.0001 , 1.9998 , 2.0001 , 3.9999 ); var c = a . fuzzyEquals(b); // default epsilon var d = a . fuzzyEquals(b , 0.005 ); // supplied epsilon console . log(c + " " + d); // false true |
Properties of type
quaternion
have
Qt.quaternion(1, 0, 0, 0)
as their default value.
This value type is provided by the QtQuick 导入。
另请参阅 QML 值类型 .