关于javascript:从零开始学习3D可视化之坐标系

42次阅读

共计 1009 个字符,预计需要花费 3 分钟才能阅读完成。

1、世界坐标系
2、父物体坐标系
3、本身坐标系
要想管制一个 3D 可视化对象的空间地位,首先须要了解空间坐标系。在 ThingJS 开发平台中,应用右手坐标系,横轴为 X 轴和 Z 轴,竖轴为 Y 轴(ThingJS 获取的地位坐标 [x, y, z] 的单位均为米)。形容或管制一个 3D 可视化物体的地位,在不同状况下,会别离应用以下 3 套坐标零碎: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 提供如下坐标转换的办法:

// 将输出的物体本身坐标系下坐标转换成世界坐标
`obj.selfToWorld(pos)`
// 将输出的世界坐标标转换成物体本身坐标系下坐标
obj.worldToSelf(pos)

我刚开始学习坐标系时,也感觉非常的头晕,我置信很多初学者和我一样,但认真想想只不过是了解三个坐标系涵义以及坐标系的转换,了解了空间坐标系,就能达到管制 3D 可视化对象空间地位的目标了。

正文完
 0