如何使用 QML 围绕原点缩放 QMesh
How to Scale a QMesh around the origin with QML
我正在使用 QML 来显示 STL 文件。我想对文件进行修改并将其显示在场景中(平移、旋转和缩放)我做了前两个但是对于缩放我想围绕原点缩放(x=0,y=0,z=0 ).我该如何进行?
原始网格
我想做的事 :
如果你想变换对象你需要使用旋转-缩放-变换顺序(简而言之:RST)
如果你想变换一个坐标系,你可以反过来做:TSR.
顺序真的很重要。
如果你加载了stl文件并且原点已经是你想要的,那么你可以旋转对象,缩放然后平移它。如果原点不是您想要的,则需要将其转换为您想要的 "initial position"。如果您是生成 stl 文件的人,则可以使用生成该 stl 文件的软件将其放在正确的 "start position".
您想围绕原点 (x=0,y=0,z=0) 使用与 y 不同的比例因子进行缩放吗?
您可以按照以下方式完成此操作:
Transform {
...
scale3D: Qt.vector3d(1, 0.5, 1)
}
编辑:如果您的 STL 文件的原点与您的坐标系不同:
在这种情况下,将您的对象转换到坐标系的原点,进行缩放,然后按照我在第一个答案中的建议将其转换回来。要获得所需的翻译量,您可以查询 boundingvolume、minExtent 和 maxExtent
我正在使用 QML 来显示 STL 文件。我想对文件进行修改并将其显示在场景中(平移、旋转和缩放)我做了前两个但是对于缩放我想围绕原点缩放(x=0,y=0,z=0 ).我该如何进行?
原始网格
如果你想变换对象你需要使用旋转-缩放-变换顺序(简而言之:RST)
如果你想变换一个坐标系,你可以反过来做:TSR.
顺序真的很重要。
如果你加载了stl文件并且原点已经是你想要的,那么你可以旋转对象,缩放然后平移它。如果原点不是您想要的,则需要将其转换为您想要的 "initial position"。如果您是生成 stl 文件的人,则可以使用生成该 stl 文件的软件将其放在正确的 "start position".
您想围绕原点 (x=0,y=0,z=0) 使用与 y 不同的比例因子进行缩放吗?
您可以按照以下方式完成此操作:
Transform {
...
scale3D: Qt.vector3d(1, 0.5, 1)
}
编辑:如果您的 STL 文件的原点与您的坐标系不同: 在这种情况下,将您的对象转换到坐标系的原点,进行缩放,然后按照我在第一个答案中的建议将其转换回来。要获得所需的翻译量,您可以查询 boundingvolume、minExtent 和 maxExtent