【babylonjs】babylonjs实践(四)--坐标轴

3,520 阅读1分钟

前言

前面讲完了小demo、相机和灯光,接下来应该讲元素物体和材质了。不过打算先跳转一下,讲一下babylonjs中的空间坐标系。因为前面展示demo的时候,x,y,z轴有点乱,是试出来的。

这一章节也会比较简单。

左手笛卡尔坐标

因为threejs用的是右手笛卡尔坐标。所以两个有点反。

说一下笛卡尔坐标系。

在原本的二维直角坐标系,再添加一个垂直于 x-轴,y-轴的坐标轴,称为 z-轴,这z-轴与 x-轴,y-轴相互正交于原点。如下图所示符合右手定则的称之为右手系,反之则为左手系。

右手定则:以右手握住z轴,当右手的四指从正向x轴以π/2角度转向正向y轴时,大拇指的指向就是z轴的正向。[左手定则同理]

image.png

简单的说, 就是不符合右手坐标系的,都是坐标坐标系,不要拿左手去套。

babylonjs中实践

image.png

你会发现,握住z轴,手是从y到了x,所以这是一个左手坐标系。

babylonjs坐标细节

如上图,为什么是这样子的视角呢,y轴朝上。

这个其实是视角问题,调整相机就行了。

那为什么ground在xz的平面上呢。

查看CreateGround函数,会发现没有配置项管他在哪个面上的。

就是说,默认是在xz面上,给转到xy面上就行。绕x轴转90度。

ground.rotation.x = - Math.PI / 2;

ground.rotation = new BABYLON.Vector3(- Math.PI / 2, 0, 0)