首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

三维世界中的坐标系

上篇文章中介绍了threejs中几个基本概念,例如场景、相机、渲染器以及组件等,并通过一个简单的案例向小伙伴展示了这些东西的用法,本文来看看threejs中的坐标体系。...本文是threejs系列的第二篇,阅读前面的文章有助于更好的理解本文: ---- 1.一个简单的案例,理解threejs中几个基本概念 ---- 坐标体系 首先,threejs中坐标体系是右手坐标系,如下图...不过读者看到,这里红色是x轴,绿色是y轴,好像没有看到z轴?...不过此时的旋转只有立方体在旋转,坐标轴未旋转,要想使坐标轴旋转,修改showCube方法,如下: function showCube() { requestAnimationFrame(showCube...Object3D中,而Object3D则添加到场景中,旋转时候,只需要Object3D旋转即可,效果与上图类似,这里不再赘述,另外,在创建WebGLRenderer渲染器时,还增加了antialias参数

2.2K40

Threejs入门之二十四:Threejs中的Animation动画

Threejs为我们提供了强大的动画系统接口API,通过这些接口,我们可以很轻松的实现物体的移动、旋转、缩放、颜色变化、透明度变化等各种效果,今天我们就来了解下Threejs中的动画系统。...动画实例通过上面的介绍我们了解了Threejs中动画系统的几个常用组件,下面我们通过创建一个移立方体,并使其通过threejs的动画系统移动、旋转、缩放、变色等操作来使其运动起来; 和前面章节一样,先搭建环境...camera)}至此,我们就实现了物体的移动动画,刷新浏览器,查看效果 旋转动画要实现旋转动画,需要先定义沿着哪个轴旋转,并定义旋转的起始角度和终止角度,然后在通过QuaternionKeyframeTrack...四元数类型的关键帧轨道来定义关键帧,代码如下 // 旋转 const xAxis = new THREE.Vector3(1,0,0) //三维向量,沿x轴 const qInitial = new...qInitial.z,qInitial.w,//第一帧 qFinal.x,qFinal.y,qFinal.z,qFinal.w,//第二帧 qInitial.x,qInitial.y

4.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ThreeJS 炫酷特效旋转多面体Web页 Demo 01《ThreeJS 炫酷特效制作》

    ThreeJS 的三个要素,若对建模、游戏有过了解的同学在学习 ThreeJS 时对知识点理解会更容易接受。...在 ThreeJS 中有三个很关键的对象,分别是 摄像头、场景以及渲染器: 其中 场景 是通过 ThreeJS “搭建”呈现特效的一个“舞台”,创建好一个场景后,即可往这个场景中添加对应的多种物体,例如多边形...接着我们此时可以移动一下摄像机的 z 轴,代码为: camera.position.z = 500; 以下为 three 中的坐标系参考图: 此时 z 轴就是摄像机,或者说人的视窗所距离中心点的位置,...Object3D 用于存放这个几何体,通过 Object3D 我们可以方便的对 完整的几何体进行 缩放、移动等。...方法对坐标进行放大,此时放大后将会使整体创建的 mesh 位置进行扩大,远离中心点,这样就可以使这些创建的物体发散到其他位置,最后在通过 mesh.rotation.set 设置他们的旋转角度,使创建的物体旋转方向发生改变

    67510

    threejs地球、星空、世界轮廓绘制、飞线、坐标涟漪 、旋转动画(下篇)

    接上篇:一个基于ThreeJS 实现的漂亮的3D 地球制作过程详解(上篇) 3D 地球成果展示 github仓库地址:https://github.com/RainManGO/3d-earth npm...实现过程 实现步骤分解: ThreeJS环境初始化 星空背景 添加带纹理的地球 世界地图轮廓边界绘制 地球光晕 添加地球云层 城市位置标注和涟漪效果 添加飞线B样条 地球自转和镜头缩放动画 接上篇从第七步骤说起...Math.PI) / 180; //转弧度值 var lat = (latitude * Math.PI) / 180; //转弧度值 lon = -lon; // three.js坐标系z坐标轴对应经度...z: (innerPoint.z * partCoefficient * earthRadius) / fromPartLen, }; }; 旋转动画 旋转动画的原理主要是利用tween 动画,然后更新地球位置和轨道控制器的...tween 动画控制旋转和缩放 旋转到中国的时候缩放 具体代码如下: //旋转地球动画 var rotateEarthStep = new TWEEN.Tween({ rotateY

    3.7K20

    Threejs入门之十四:Threejs中的组(Group)对象

    在Threejs的官方文档中介绍Group时说它几乎与Object3D相同,因此,Group的属性和Object3D的相同 .children属性 使用group.children属性可以查看所有group...对象的显示和隐藏group.visible = false //隐藏平移缩放旋转 组的平移缩放旋转等操作会影响组里面的子对象,即子对象会跟随组对象一起变化 使用group.translate对组进行平移...group.translateX(100) 子对象的坐标跟着平移了 使用group.scale.set来设置组的缩放group.scale.set(0.5,0.5,0.5) 注意看这里同时使用了向x轴平移和缩放...使用group.rotate设置组的旋转 group.rotateY(Math.PI/4) .traverse()方法 递归遍历 可以通过递归遍历的算法去遍历Threejs一个模型对象包含的所有后代group.traverse...= new THREE.AxesHelper(50)cubeA.add(cubeAaxesHelper)好了,关于Threejs中的Group对象,就介绍到这里,更多的功能可以查看官方文档,喜欢的关注点赞哦

    3.1K10

    Three.js基础之变换3D对象 | 《Three.js零基础直通04》

    每个轴的方向并不能单纯的用水平垂直纵深去描述,因为它可以根据环境而变化,比如旋转。在Three.js中采用右手笛卡尔坐标系,y轴向上,z轴向后,x轴向右。...AxesHelper 将始终显示与x,y和z轴相对应的3个轴向指示,每一个轴向的指示都从场景的中心开始并沿相应的方向延伸。 创建AxesHelper,并将其添加到场景中。...但是这里面有个坑,当我们同时旋转多个轴时可能会得到一些意想不到的结果。因为,当你旋转x轴时,也会改变其他轴的方向。因而我们可以通过使用reorder(...) 方法对象来更改旋转轴的应用顺序。...比如rotation.reorder('yxz'),就将先执行y轴的旋转。 虽然rotation使用起来更容易理解,但这个顺序问题挺讨厌的。...由于Group类也继承自Object3D类,因此前面提到的属性和方法,例如位置,比例,旋转,四元数和lookAt都可以作用在Group上。

    3.5K20

    三维世界中相机的位置参数

    本文是threejs系列的第五篇,阅读前面的文章有助于更好的理解本文: ---- 1.一个简单的案例,理解threejs中几个基本概念 2.三维世界中的坐标系 3.3d弹弹球 4.3d弹弹球(加强版)...position 首先position表示相机的位置,相机位于不同位置可以看到不同的场景,这个因该很容易理解,例如在上文的案例中,将相机沿x轴水平移动,移动后,就能看到z轴了,添加如下代码: camera.position.x...可以看到,蓝色的线即为z轴,因为相机y轴还是0,因此没有立体感,将相机沿y轴也移动30个单位,就有立体感了,如下: camera.position.y = 30; 显示效果如下: ?...lookAt 将相机向上移动之后(y轴坐标增大),读者可能会发现整个球连同坐标系的位置都下移了,这个很好理解,例如你本来正襟危坐,眼睛正前方有一台电脑,当你站起来(相当于相机y轴坐标增大)后,电脑的位置自然就在视野的下方了...可以看到,和图一相比,此时画面刚好旋转了90度,那是因为相机旋转了90度。 当然,up也可以调整为其他位置,但是要注意,up要垂直于lookAt,否则threejs可能不知道你到底想干嘛。

    1.4K70

    【带着canvas去流浪(15)】threejs fundamentals翻译系列1-scene graph

    /lessons/threejs-scenegraph.html 笔者按:别关键词保持原英文单词,理解起来会更方便。...,每个方向上仅将球面分为6个子区域,这样就比较容易观察它们的旋转。...点击在线示例可直接查看,原文中此处有支持在线编辑的示例代码 在示例中我们可以看到X轴(红色)和Z轴(蓝色),因为我们是俯视整个系统,每个物体都绕着y轴旋转,所以绿色的Y轴看起来不是很明显。...,蓝色的表示Object3D虚拟节点,金色的表示场景灯光,紫色的表示不同的相机,以及一个没有添加到场景结构图中的相机: ?...接下来再添加一个targetBob子节点,它可以在targetElevation的局部坐标系中实现上下震动,最后添加一个目标实体,一边让它旋转,一边改变其颜色: // move target targetOrbit.rotation.y

    1.7K10

    CSS3变形属性

    简单点说,对象只向X轴进行移动,如果值为正值, 对象向右移动;如果值为负值,对象向左移动。 ·translateY():纵轴方向移动一个对象。通过给定一个Y轴方向的数值指定对象沿纵轴方向的位移。...2D倾斜 倾斜函数skew()能够让元素倾斜显示,可以将一个对象以其中心位置围绕着X轴和Y轴 按照一定的角度倾斜。...·ay:指定元素垂直方向( Y 轴 方向)倾斜的角度。...按给定的角度沿X轴指定一个倾斜变形。 skewX()使元素以其中心为基点, 并在水平方向( X 轴)进行倾斜变形。 ·skewY():相当于skew( 0, ay)。...按给定的角度沿Y轴指定一个倾斜变形。 skewY()用来设置元素以其中心为基点并按给定的角度在垂直方向( Y 轴) 倾斜变形。

    2K10

    第168期:看起来不像立方体

    封面图 在上一节中,我们用threejs成功创建了一个蓝色的立方体。...其实并不是,理解这个问题需要我们用到三维空间的坐标系以及三视图的概念。 3D笛卡尔坐标 3D笛卡尔坐标系由X,Y和Z轴组成,三轴交叉于点(0,0,0)(称为原点)。二维坐标系相似,但只有X和Y轴。...在高中时代,我们见过的空间直角坐标系如下: 它和上面彩色的坐标系这里暂时可以简单认为是同一个东西,因为我们把它沿x轴旋转90度,然后再沿y轴旋转90度,即可得到上面的坐标系。...辅助对象 在旋转立方体的过程中,我们发现旋转的程度不是特别容易控制。这个也容易解决,我们可以添加一个辅助对象 AxesHelper 轴辅助对象,它可以简单模拟3个坐标轴的对象。 红色代表 X 轴....绿色代表 Y 轴. 蓝色代表 Z 轴。

    21620

    基于vue3+threejs实现可视化大屏

    本文需要对 threejs 的一些基本概念和 api 有一定了解。 如果对 threejs 这部分还不了解的可以看下官方文档和一些中文文档进行学习。...官方文档地址:threejs.org/ 中文文档地址:www.webgl3d.cn/pages/aac9a… 本文主要主要讲述对 threejs 的一些 api 进行基本的封装,在 vue3 项目中来实现一个可视化的...this.viewerDom.appendChild(this.renderer.domElement); } Viewer 里面还加了一些 addAxis 添加坐标轴、addStats 性能监控等辅助的公用方法...这里有一篇关于 threejs 中轮廓线、边框线、选中效果实现的N种方法以及性能评估的文章:zhuanlan.zhihu.com/p/462329055 js 复制代码 import { BoxHelper..., Color, Object3D } from 'three'; import type Viewer from '..

    87921

    2D变形(CSS3) transform

    transform是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、倾斜、缩放,甚至支持矩阵方式 变形转换 transform transform 变换 变形的意思 移动 translate(...可以改变元素的位置,x、y可为负值; ranslate(x,y)水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动) translateX(x)仅水平方向移动(X轴移动) translateY(Y...)仅垂直方向移动(Y轴移动) 2.重点 定义2D转换中的移动,沿X轴和Y轴移动元素 translate最大的优点:不会影响到其他元素的位置 translate中的百分比单位是相对自身元素的...scale(X,Y)使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩放) scaleX(x)元素仅水平方向缩放(X轴缩放) scaleY(y)元素仅垂直方向缩放(Y轴缩放) scale()的取值默认的值为...可以使元素按一定的角度进行倾斜,可为负值,第二个参数不写默认为0。

    88730

    用Three.js建模

    LatheGeometry不是从曲线上构建的,而是从曲线上的一系列点构建的。点是Vector2型的对象,曲线位于xy平面中。表面是通过围绕y轴旋转曲线生成的。...第二个是当一个点围绕轴旋转时沿圆产生的表面细分的数量。在示例程序中,通过调用cosine.getPoints(128) 从余弦类型的曲线对象创建点阵列。...不过,也可以通过调用函数obj.translate X(dx)、obj.translateY(dy)或obj.translateZ(dz)来改变位置,以便将对象沿指定坐标轴的方向移动。...但是,你可以使用obj.rotateX(angle)、obj.rotateY(angle)和obj.rotateZ(angle)来围绕指定坐标轴旋转对象。请记住角度单位是弧度。...调用obj.rotateX(angle)与在obj.rotation.x值上增加角度不同,因为它在其他可能已有旋转之上应用了关于 x 轴的旋转。

    7.5K02

    一篇文章带你了解SVG 转换知识

    将x 和 y 值传递给translate()的函数。 translate(50,25) 将形状沿x轴移动50个单位,并沿y轴移动25个单位。显示了两个位置相等且大小相等的形状,有无平移。...注 与第一个(红色)形状相比,第二个(蓝色)形状沿x轴移动75个单位,沿y轴移动25个单位。 2. 旋转 rotate() rotate()函数围绕点0,0旋转形状。...如下所示: scale(2,3); 将沿x轴将形状缩放2倍,沿y轴将形状缩放3倍。...注意: 缩放后的矩形(黑色)的笔划宽度也是如何缩放的,并且在x轴和y轴上的缩放比例不同。 4. 偏斜 skew() skewX()和skewY()函数偏斜x轴和y轴。...实际上,这些函数会根据以度为单位指定的某个角度来倾斜给定的轴。 显示具有不同skewX()值的矩形的一些示例。

    1.9K10

    Threejs入门之六:利用HTML5的requestAnimationFrame方法实现物体的旋转

    ,给它一个旋转弧度,使其沿y周旋转// 定义一个render函数function render() { // requestAnimationFrame 实现周期性循环执行 mesh.rotateY...(0.01) //y轴旋转的弧度 requestAnimationFrame(render)//请求再次执行渲染函数render,渲染下一帧}然后在js中调用render函数,刷新浏览器发现物体仍然是静止的状态...函数function render() { // requestAnimationFrame mesh.rotateY(0.01)//沿y轴旋转的弧度,单位 弧度 renderer.render...(scene,camera) requestAnimationFrame(render)//请求再次执行渲染函数render,渲染下一帧}render()刷新浏览器,发现物体已经沿y轴自动旋转了。...轴旋转的弧度,单位 弧度 renderer.render(scene,camera) requestAnimationFrame(render)//请求再次执行渲染函数render,渲染下一帧}render

    1.4K20
    领券