1。世界坐标系2。父对象坐标系3。自坐标系要控制3D可视化对象的空间位置,首先需要了解空间坐标系。ThingJS开发平台中采用右手坐标系,横轴为X轴和Z轴,纵轴为Y轴(位置坐标的单位[x,y,ThingJS得到的z]都是以米为单位)。为了描述或控制一个3D可视化对象的位置,在不同的情况下,会用到以下三组坐标系:1.世界坐标系2.父对象坐标系3.自坐标系。以下是我对世界坐标系、父对象坐标系、自身坐标系的学习,以及自己的理解。如有错误,欢迎指正和讨论。1.世界坐标系世界坐标系是系统的绝对坐标系。当创建3D可视化场景(注意不是指公园)时,会在整个场景空间中绘制一个位置。此时场景空间的坐标系就是世界坐标系。控制物体在世界坐标系中的位置,直接使用position属性,如:obj.position=[10,0,10]获取物体在世界坐标系中的位置,使用position属性直接,如:console.log(obj.position)2.父对象坐标系父对象坐标系是指以父对象为中心的相对坐标系。例如:在3D可视化场景中创建一个公园,在公园里放置一架飞机,飞机就是公园的子对象。我想在3D可视化公园的坐标系中设置平面的位置。此时使用的公园坐标系为飞行器的父对象坐标系。使用localPosition属性设置或检索对象在父对象坐标系中的位置。3.自坐标系以物体自身为中心的坐标系。有时你也想用你自己的坐标系来控制它。比如叉车前进2米,就是在自己的坐标系中设置坐标[0,0,2](物体本身的z轴为正,可以理解为是方向)物体的正面,例如我们自己的脸的方向)。一个对象使用下面的接口来控制它在自己坐标系中的位置:obj.translate([0,0,2]);一般情况下,子对象会随着父对象一起移动,如果想控制子对象不跟随父对象移动,可以通过设置子对象的inheritPosition属性为false来实现。另外,ThingJS提供了如下坐标转换方法://Convertinputobjectowncoordinatesystemintoworldcoordinates`obj.selfToWorld(pos)`//Convertinputworldcoordinatesintoobjectowncoordinatesystemobj.worldToSelf(pos)刚开始学习坐标系的时候,我也觉得很晕。相信很多初学者都和我一样,但是想了想,也只是了解三个坐标系的含义和坐标系的转换,了解空间而已。坐标系可以达到控制3D可视化对象空间位置的目的。
