对形状应用一个 4x4 矩阵,或从头到尾依次应用一个矩阵列表。
矩阵为列主序,因此平移位于索引 12 到 14。允许拉伸或错切的矩阵;用 ...ToMatrix 方法构建矩阵并用 multiplyTransforms 组合它们。内核无法应用的矩阵会抛出错误。
形状以及矩阵或矩阵列表
变换后的形状
const move = await bitbybit.occt.transforms.translationToMatrix({ translation: [10, 0, 0] });
const turn = await bitbybit.occt.transforms.rotationAxisAngleToMatrix({ axis: [0, 1, 0], angle: 90, center: [0, 0, 0] });
const placed = await bitbybit.occt.transforms.transformByMatrix({ shape: box, transformation: [turn, move] });
对多个形状应用同一个 4x4 矩阵,或从头到尾依次应用同一个矩阵列表,与 transformByMatrix 对一个形状所做的相同。
形状以及矩阵或矩阵列表
变换后的形状,顺序相同
读取形状携带的放置信息,即存储在其上而不是烘焙进其几何的变换,以矩阵加上其平移、旋转四元数和均匀缩放的形式给出。
用 align 放置或通过装配体放置的形状携带这样的放置信息;此处的大多数其他方法将移动烘焙进几何,这样的形状报告单位变换。
要读取的形状
矩阵、平移、以 [x, y, z, w] 表示的四元数和缩放
由一个平移、绕 X、Y 和 Z 的三个旋转角(以度为单位)和一个均匀缩放构建一个矩阵。
先应用缩放,然后是旋转(先 Z,然后 Y,最后 X),最后是平移,这是装配体放置所用的顺序。省略的部分视为不变。
平移、以度为单位的三个旋转角度和缩放系数
组合后的矩阵,列主序
将矩阵列表合并为一个,从头到尾依次应用,使一串移动成为单个矩阵。
单个矩阵原样返回,空列表给出单位矩阵。
矩阵或矩阵列表
组合后的矩阵,列主序
求矩阵的逆,给出撤销它的变换:先应用一个矩阵再应用其逆,形状回到原处。
要求逆的矩阵
逆矩阵,列主序
构建按向量移动的矩阵,以模型单位表示。
平移向量
平移矩阵,列主序
构建绕某轴旋转一个角度(以度为单位)的矩阵,该轴经过原点或可选的中心点。
旋转遵循绕 axis 的右手定则。
轴方向、以度为单位的角度以及可选的轴经过的点
旋转矩阵,列主序
构建按系数绕原点或可选的中心点均匀缩放的矩阵。
系数和可选的缩放所围绕的点
缩放矩阵,列主序
构建关于一个点镜像的矩阵,即 mirrorAboutPoint 应用的变换。
作为镜像中心的点
镜像矩阵,列主序
构建关于一条直线镜像的矩阵,即 mirror 应用的变换:经过 origin 且沿 direction 的轴。
轴上的一点和轴方向
镜像矩阵,列主序
构建关于一个平面镜像的矩阵,即 mirrorAlongNormal 应用的变换:经过 origin 且具有给定法线的平面。
平面上的一点和该平面的法线
镜像矩阵,列主序
构建以 [x, y, z, w] 给出的四元数的旋转矩阵。
四元数先被归一化,因此其长度无关紧要。
四元数
旋转矩阵,列主序
对多个形状应用 transform,每个有自己的平移、旋转轴、角度和缩放系数。
所有列表的长度必须相同,否则抛出错误。
形状以及每个形状各自的平移、旋转轴、以度为单位的角度和缩放系数
变换后的形状,顺序相同
对多个形状应用 rotate,每个绕自己经过原点的轴并按自己的角度(以度为单位)旋转。
所有列表的长度必须相同,否则抛出错误。
形状以及每个形状各自的轴和角度
旋转后的形状,顺序相同
对多个形状应用 rotateAroundCenter,每个有自己的角度(以度为单位)、中心和轴。
所有列表的长度必须相同,否则抛出错误。
形状以及每个形状各自的角度、中心和轴
旋转后的形状,顺序相同
对多个形状应用 align,每个有自己的起始和目标坐标系。
所有列表的长度必须相同,否则抛出错误。
形状以及每个形状各自的起始原点、起始方向、目标原点和目标方向
对齐后的形状,顺序相同
对多个形状应用 alignAndTranslate,每个有自己的方向和中心。
所有列表的长度必须相同,否则抛出错误。
形状以及每个形状各自的方向和中心
放置后的形状,顺序相同
对多个形状应用 translate,每个按自己的向量移动。
两个列表的长度必须相同,否则抛出错误。
形状以及每个形状各自的平移向量
移动后的形状,顺序相同
对多个形状应用 scale,每个按自己的系数绕原点均匀缩放。
两个列表的长度必须相同,否则抛出错误。
形状以及每个形状各自的系数
缩放后的形状,顺序相同
对多个形状应用 scale3d,每个有自己的三个系数和中心。
所有列表的长度必须相同,否则抛出错误。
形状以及每个形状各自的缩放向量和中心
缩放后的形状,顺序相同
对多个形状应用 mirror,每个关于自己的轴镜像。
所有列表的长度必须相同,否则抛出错误。
形状以及每个形状各自的轴原点和方向
镜像后的形状,顺序相同
对多个形状应用 mirrorAlongNormal,每个关于自己的平面镜像。
所有列表的长度必须相同,否则抛出错误。
形状以及每个形状各自的平面原点和法线
镜像后的形状,顺序相同
一次完成对形状的缩放、旋转和移动:先绕原点缩放,然后绕经过原点的轴旋转,最后平移。
因为缩放和旋转都绕原点进行,不在原点的形状也会绕原点摆动;先移动它,或者用 rotateAroundCenter 和 scale3d 指定中心。
形状、平移、旋转轴和以度为单位的角度,以及缩放系数
变换后的形状
使形状绕经过原点的轴旋转一个角度,以度为单位。
旋转遵循右手定则:拇指沿 axis,四指指示正方向。远离原点的形状会绕原点摆动;rotateAroundCenter 则绕指定的点旋转。
形状、轴方向和以度为单位的角度
旋转后的形状
使形状绕经过指定点的轴旋转一个角度,以度为单位。
形状先被移动使该点位于原点,在那里按右手定则绕 axis 旋转,然后移回。
形状、以度为单位的角度、轴经过的点和轴方向
旋转后的形状
移动形状,使其上的一个点和方向落到另一个点和方向上:由 fromOrigin 和 fromDirection 构成的坐标系被带到 toOrigin 和 toDirection 上。
这是将形状立于曲面上或使其沿直线指向的方法:形状既被移动又被转动,从不缩放。
形状、作为起始的点和方向,以及作为目标的点和方向
对齐后的形状
移动形状,使其上的一个完整坐标系落到另一个坐标系上:一个点、其法线以及该法线平面内的一个轴被带到各自的目标上。
align 固定一个方向而让绕它的转动自由,此方法还固定该转动,这对绕其轴不对称的形状很重要。
形状、作为起始的点、法线和轴,以及作为目标的点、法线和轴
对齐后的形状
转动形状使其 Y 轴沿 direction 指向,然后将其移动到 center。
本包的平面形状和基本体都以 Y 向上构建在地面上,因此这是放置它们中任何一个的那一个调用:方向成为它们新的向上方向,中心是它们所在的位置。
形状、其 Y 轴应指向的方向以及要移动到的点
放置后的形状
按向量移动形状,以模型单位表示。
形状和移动它的向量
移动后的形状
按系数绕原点均匀缩放形状。
远离原点的形状也会远离或靠近原点;scaleFromCenter 绕指定的点缩放,scale3d 按各自的系数缩放每个轴。
形状和系数
缩放后的形状
绕指定的中心点,按沿 X、Y 和 Z 各自的系数缩放形状。
不相等的系数会拉伸形状,使圆变成椭圆,并可能使后续操作(例如圆角)变慢或失败;当形状只需放大时保持系数相等。
形状、三个系数和缩放所围绕的点
缩放后的形状
将形状关于一条直线镜像:经过 origin 且沿 direction 的轴。
每个点落到直线后方与其原先在前方相同的距离处,在 3D 中这等同于绕该轴转半圈。
形状、轴上的一点和轴方向
镜像后的形状
将形状关于由其上一点及其法线给出的平面镜像。
这是通常的镜像,对称零件所需要的那种;结果在左手形状变为右手形状的意义上被翻转。
形状、镜像平面上的一点和该平面的法线
镜像后的形状
按系数绕指定的点均匀缩放形状。
该点保持不动,其他一切都远离或靠近它。
形状、系数和缩放所围绕的点
缩放后的形状
将形状关于一个点镜像:形状的每个点都落到该点另一侧与其原先距离相同的位置。
结果被翻转,就像平面镜把左手变成右手一样。
形状和作为镜像中心的点
镜像后的形状
按以 [x, y, z, w] 给出的四元数使形状绕原点旋转。
四元数先被归一化,因此其长度无关紧要。四元数是动画和物理库输出的形式,因此这省去了将它们转换为轴和角度的步骤。
形状和四元数
旋转后的形状
移动、旋转、缩放和镜像 OpenCascade 形状,以及构建描述这些移动的 4x4 矩阵。每个方法都返回新形状,并保持输入不变。角度以度为单位,距离以模型单位表示,除非方法接受中心,否则旋转轴经过原点。矩阵是按列主序排列的 16 个数值(平移位于索引 12 到 14);矩阵列表从头到尾依次应用,作为一次组合移动,这就是
transformByMatrix和各...ToMatrix构建器相互配合的方式。