vector4d QML 值类型

vector4d 类型具有 x、y、z 和 w 属性。更多信息...

详细描述

vector4d 类型具有 xyzw 属性,否则它与 vector3d 类型类似。

vector4d 类型的属性默认为零向量。它将 xyzw 设置为 0

有关 vector3d 类型的更多信息,请参阅文档。

要创建 vector4d 值,指定它为 "x,y,z,w" 字符串,或分别定义其组件,或将它与 Qt.vector4d() 函数组合。

vector4d 类型有以下幂等函数,可以在 QML 中调用:

函数签名描述示例
real dotProduct(vector4d other)返回此 this vector4d 与 other vector4d 的点积的实数结果
var a = Qt.vector4d(1,2,3,4);
var b = Qt.vector4d(5,6,7,8);
var c = a.dotProduct(b);
console.log(c); // 70
vector4d times(matrix4x4 matrix)返回通过将 4x4 的 matrix 应用到向量后面来变换此 this vector4d 的 vector4d 结果
var a = Qt.vector4d(1,2,3,4);
var b = Qt.matrix4x4(4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
var c = a.times(b);
console.log(c.toString()); // QVector4D(120, 130, 140, 150)
vector4d times(vector4d other)返回此 this vector4d 与 other vector4d 相乘的 vector4d 结果
var a = Qt.vector4d(1,2,3,4);
var b = Qt.vector4d(5,6,7,8);
var c = a.times(b);
console.log(c.toString()); // QVector4D(5, 12, 21, 32)
vector4d times(real factor)返回与此 this vector4d 相乘的标量 factor 的 vector4d 结果
var a = Qt.vector4d(1,2,3,4);
var b = 4.48;
var c = a.times(b);
console.log(c.toString()); // QVector3D(4.48, 8.96,
                                        13.44, 17.92)
vector4d plus(vector4d other)返回此 this vector4d 与 other vector4d 相加的 vector4d 结果
var a = Qt.vector4d(1,2,3,4);
var b = Qt.vector4d(5,6,7,8);
var c = a.plus(b);
console.log(c.toString()); // QVector4D(6, 8, 10, 12)
vector4d minus(vector4d other)返回从 this vector4d 减去 other vector4d 的 vector4d 结果
var a = Qt.vector4d(1,2,3,4);
var b = Qt.vector4d(5,6,7,8);
var c = a.minus(b);
console.log(c.toString()); // QVector4D(-4, -4, -4, -4)
vector4d normalized()返回此向量的归一形式
var a = Qt.vector4d(1,2,3,4);
var b = a.normalized();
console.log(b.toString());
// QVector4D(0.182574, 0.365148, 0.547723, 0.730297)
real length()返回此 this vector3d 的长度的标量实数值
var a = Qt.vector4d(1,2,3,4);
var b = a.length();
console.log(b.toString()); // 5.477225575051661
vector2d toVector2d()返回将此 this vector4d 转换为 vector2d 的 vector2d 结果
var a = Qt.vector4d(1,2,3,4);
var b = a.toVector2d();
console.log(b.toString()); // QVector2D(1, 2)
vector3d toVector3d()返回将此 this vector4d 转换为 vector3d 的 vector3d 结果
var a = Qt.vector4d(1,2,3,4);
var b = a.toVector3d();
console.log(b.toString()); // QVector3D(1, 2, 3)
bool fuzzyEquals(vector4d other, real epsilon)如果此 this vector4d 与 other vector4d 大致相等,则返回 true。近似将成立,如果 this 的每个属性都在 otherepsilon 范围内。注意,epsilon 是一个可选参数,默认值是 0.00001。
var a = Qt.vector4d(1,2,3,4);
var b = Qt.vector4d(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

该值类型由 QtQuick 导入提供。

另请参阅QML 值类型.

© 2024 Qt公司所有权。本文件中包含的文档贡献属于各自的著作权人。本文件提供的文档受自由贸易软件基金会发布的GNU自由文档许可协议版本1.3的条款约束。Qt及其相关标志是芬兰及/或全球其它国家的Qt公司的商标。所有其他商标均属于各自的版权所有人。