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

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

其实并不是,理解这个问题需要我们用到三维空间的坐标系以及三视图的概念。 3D笛卡尔坐标 3D笛卡尔坐标系由X,Y和Z轴组成,三轴交叉于点(0,0,0)(称为原点)。二维坐标系相似,但只有X和Y轴。...在高中时代,我们见过的空间直角坐标系如下: 它和上面彩色的坐标系这里暂时可以简单认为是同一个东西,因为我们把它沿x轴旋转90度,然后再沿y轴旋转90度,即可得到上面的坐标系。...我们先将灯光的默认位置打印出来看下: // light.position _Vector3 {x: 0, y: 1, z: 0} 原来它在坐标轴(0,1,0)这个位置,我们调整一下,设置为(40, 30...绿色代表 Y 轴. 蓝色代表 Z 轴。...抗锯齿是一项非常复杂的技术,暂时我们只需要知道启用antialias这个属性即可。

21620

# threejs 基础知识点汇总

没错,在Three.js中是存在坐标系的,坐标系存在x轴、y轴、z轴。怎么定义的呢,我们可以使用辅助坐标系进行辅助查看。...,x轴5,y轴5,z轴3 light.position.set(5, 5, 3); // 将点光源添加到场景 scene.add(light); 把点光源想象为一个电灯泡,在3D空间中,放的位置不同,...在二维平面,点击一个按钮很简单,因为屏幕是平面的,页面也是平面的,根据 X、Y 就可以定位元素位置。...在三维,渲染的是一个立体的场景,我们就不能单纯通过电脑屏幕的 X、Y 来获取元素位置,因为三维存在 Z 轴。...这个渲染器和渲染三维场景的渲染器不是一个渲染器,你可以简单的理解成,我们把这个渲染器盖在了三维场景渲染器的上方,用来渲染我们后期需要添加的 HTML 标签。

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

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

    /assets/lessons/05/step-01.png 移动 position位置属性又有3个基本变量,x,y和z。这些是在3D空间中用于定位的3个轴向。...每个轴的方向并不能单纯的用水平垂直纵深去描述,因为它可以根据环境而变化,比如旋转。在Three.js中采用右手笛卡尔坐标系,y轴向上,z轴向后,x轴向右。...由于我们看见的画面都是经过调用渲染器渲染出来的,所以要确保在进行变换后调用一次渲染器的渲染方法render(...) mesh.position.x = 0.7 mesh.position.y = -...缩放 缩放也是一个具有x,y,z三个变量的向量对象。在创建3D对象时,默认的缩放比例x,y和z皆为1,就是没有缩放的意思。...这就是为什么大多数引擎和3D软件使用另一种名为Quaternion的解决方案的原因。

    3.5K20

    用 Three.js 画一个哆啦A梦的时光机

    在 three.js 里以向右的方向为 x 轴,向上的方向为 y 轴,向前的方向为 z 轴: 然后管理在三维坐标系里的物体得有个对象体系。...让这个 mesh 绕 y 和 x 旋转 0.5 的角度。 渲染出来的是这样的: 确实是个立方体,只不过没有明暗变化。...然后去掉底,这个是在创建圆柱体的时候指定: 再让圆柱绕 x 轴旋转下看看: tunnel.rotation.x = tunnel.rotation.x + 0.01; 确实,没有底了。...为什么不是绕 z 轴转? 因为这个圆柱已经绕 x 轴顺时针转了 90 度,所以是绕 y 轴转,看到的是绕 z 轴转的效果。...首先,过了下 Three.js 的基础: 向右为 x 轴、向上为 y 轴,向前为 z 轴 场景 scene 管理灯光 light、相机 camera、物体mesh 等,然后通过渲染器 renderer

    45530

    3-关于小五物联的功能介绍(添加波形图,Achartengine)

    ;// 渲染器容器(就是设置整个界面的布局参数,也是设置底层网格的方法类) 其实呢这个是对咱所看到的表的统称(包括下面的表格和上面的线) 下面的表格的一些参数就是用它设置的 multipleSeriesRenderer.setLabelsColor...XLabels 设置X轴标签的个数 * @param YLabels 设置Y轴标签的个数 * @param XAxisMin 设置.../*方便让别的类获取这个类的context,这样就可以用获得的context来使用这个里面的方法*/ public AchartengineMethod(Context context)...XLabels 设置X轴标签的个数 * @param YLabels 设置Y轴标签的个数 * @param XAxisMin 设置...XLabels 设置X轴标签的个数 * @param YLabels 设置Y轴标签的个数 * @param XAxisMin 设置

    1.3K30

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

    在 ThreeJS 中有三个很关键的对象,分别是 摄像头、场景以及渲染器: 其中 场景 是通过 ThreeJS “搭建”呈现特效的一个“舞台”,创建好一个场景后,即可往这个场景中添加对应的多种物体,例如多边形...接着我们此时可以移动一下摄像机的 z 轴,代码为: camera.position.z = 500; 以下为 three 中的坐标系参考图: 此时 z 轴就是摄像机,或者说人的视窗所距离中心点的位置,...若不移动这个距离,在创建几何体时将会无法很好的看见几何体,因为默认位置为这个坐标系的中心点。...随后我们需要对这个几何体 planet 进行缩放大小显示,在此放大 16 倍: planet.scale.x = planet.scale.y = planet.scale.z = 16; 接下来我们需要创建一个...y z 的坐标,接着通过 multiplyScalar 方法对坐标进行放大,此时放大后将会使整体创建的 mesh 位置进行扩大,远离中心点,这样就可以使这些创建的物体发散到其他位置,最后在通过 mesh.rotation.set

    67410

    『Three.js』几个简单的入门动画(新手篇)

    在了解了 Three.js 的基础概念之后也有这个想法。 简单的动画可以提高 Three.js 初学者 的学习兴趣和信心。 本文会从初学者的角度出发讲解几个简单的动画,包括:平移、旋转、缩放、跳跃。...// 分别传入 x y z 轴的坐标 camera.position.set(10, 10, 10) camera.lookAt(scene.position) // 将相机添加到场景中...最简单的动画就是每一帧动一下,比如平移、旋转、缩放等。 平移 平移可以理解成改变物体的位置。 在三维世界里,用 x、y、z 代表三个维度。...只要在每一帧都移动一下,不管是哪个维度都行,就可以做出一个平移动画。 比如,做一个以 x轴 方向的动画(来回移动)。...y、z 轴方向进行旋转。

    2.6K10

    三维世界中的坐标系

    默认位置 按理说,场景是不需要坐标这个概念的,其他的组件和相机是有坐标的,在上文的案例中,读者可以在浏览器控制台打印出所有的坐标: ?...可以看到,相机的坐标是(0,0,5),其他的坐标则都是(0,0,0),相机默认坐标也是(0,0,0),只是由于我们在代码中配置了z轴坐标为5,不知读者是否还记得上文中如下一行代码: camera.position.z...不过读者看到,这里红色是x轴,绿色是y轴,好像没有看到z轴?...这是因为z轴垂直于屏幕,而相机目前的位置是(0,0,5),因此看不到z轴,将相机在x轴方向上移动1个单位,即添加如下代码: camera.position.x = 1; 此时页面展示结果如下: ?...当然这样看起来三维的效果还是不太明显,那么可以将相机向上太高一点,即相机的y轴移动一个单位,此时,拍摄到的图像会相应的向下移动一个单位,为了使组件看起来依然在原点,这个时候需要调整下相机的方向,相机本来是查看正前方事物

    2.2K40

    Three.js 手写跳一跳小游戏(上)

    这样看到的是这样的: 为什么 2 个面是黑的呢? 因为点光源在 0,0,500 的位置啊,另外两个面照不到。 调整下光源位置到 0,500, 500 呢?...= -50; scene.add( cube2 ); } x、z 轴的尺寸为 30,y 轴的尺寸为 20....光照射到的部分越多,颜色越浅,照射到的越少,颜色越深。 我们希望上面的面(y 轴)照射到的多一些,前面那个面(z 轴)其次,右边那个面(x 轴)最深。...这样就有了跳的感觉。 只不过现在方块数量是有限的,并且跳的速度也是固定的,这个我们后面再继续完善。 现阶段全部代码如下: 的关系看这张图就好了: 在 three.js 里,向右为 x 轴,向上为 y 轴,向前为 z 轴,可以用 AxesHelper 来画出坐标系。

    50320

    『Three.js』辅助坐标轴

    轴上的距离 camera.position.x = -3 camera.position.y = 5 camera.position.z = 5 // 将摄像机的方向对准场景的中心点...camera.lookAt(scene.position) // 适当的旋转一下立方体 cube.rotation.x += 0.8 cube.rotation.y += 0.8...,坐标轴有点短,所以在创建坐标轴的时候建议传入一个长度。...设置坐标轴颜色 从上面的案例中可以发现,坐标轴默认的颜色是:红、绿、蓝。如果你希望自定义坐标轴的颜色,可以使用 setColors 进行修改。该方法需要传3个参数进去。...如果只传2个参数,那么第3个参数的值会直接取到第2个参数的值,所以y和z轴的颜色相同。 这两种情况建议你自己手动测试,我在这里就不贴代码了~ 代码仓库 ⭐Three.js 坐标轴

    2.3K20

    现代浏览器探秘(part3):渲染

    例如,缺少结束标记是有效的HTML。 像 Hi! I'm Chrome!这样的错误标记(b标签在i标签之前被关闭)被看作是 Hi!...为什么要这样处理?...图4:一个人站在一幅画,通过电话线与另一个人联系 布局是查找元素几何的过程。 主线程遍历DOM并计算样式和创建布局树,其中包含x y坐标和边界框大小等信息。...图6:由于换行符而移动的段落的框布局 CSS可以使元素浮动到一侧,掩盖溢出项,并更改写入方向。 你可以想象,这个布局阶段是一项艰巨的任务。 在Chrome项目中,有一个完整的工程师团队负责布局。...图7:一个在画布前拿着画笔的人,正在思考是应该先画圆圈还是矩形 例如:可以为某些元素设置z-index,在这种情况下,按HTML中编写的元素顺序绘制将导致不正确的呈现。 ?

    1.4K10

    Three.js深入浅出:2-创建三维场景和物体

    渲染器负责将 3D 场景渲染成 2D 图像并显示在浏览器中。Three.js 使用 WebGL 技术来进行硬件加速的 3D 渲染,而 WebGLRenderer 类就是用于创建并配置这个渲染器的。...BoxGeometry 类表示一个立方体的几何形状,参数 (1, 1, 1) 分别表示立方体在 x、y、z 轴上的尺寸。因此,这行代码创建了一个边长为 1 的立方体几何体。...camera.position.z = 5; 这一行代码将摄像机的位置沿着 z 轴移动到距离原点 5 个单位的位置。...cube.rotation.x += 0.01;  和 cube.rotation.y += 0.01;  这两行代码分别对立方体模型进行 x 轴和 y 轴方向上的旋转操作。...在 animate 函数中,使用 requestAnimationFrame 请求浏览器在下次重绘之前更新动画,然后对立方体模型进行 x 和 y 轴方向上的旋转操作,最后通过渲染器对场景进行渲染。

    57320

    前端新玩具——webGL简介

    这个玩意儿大家都认识吧不多啰嗦了 这里y轴跟canvas是逆向的,这是一个右手坐标系 网格、多边形和顶点 网格(Mesh)是绘制3D图形的一种方法,它是由一个或多个多边形组成的物体,每个顶点的坐标...(x,y,z)定义了多边形在3D空间中的位置,这里的多边形通常是三角形和四边形。...就是向量和坐标的表示方法是一样的。于是这里引入齐次坐标(w)来区分,w=0,则表示向量,否则表示点。于是我们的向量就长这样:(x, y, z, w)。...值得一提的是,齐次坐标表示方法不唯一,(x, y, z, w)跟(x/w, y/w, z/w, 1)表示同一个点,后者为齐次坐标的正常化处理。...旋转三个矩阵,分别对应x、y、z轴,这个坐标轴遵循右手法则,右手法则就是: ? 那么比如我们绕z轴旋转,使用上面的第三个矩阵,旋转90度,效果这样: ? 缩放 ?

    3.1K70

    前端新玩具——webGL简介

    这个玩意儿大家都认识吧不多啰嗦了 这里y轴跟canvas是逆向的,这是一个右手坐标系 网格、多边形和顶点 网格(Mesh)是绘制3D图形的一种方法,它是由一个或多个多边形组成的物体,每个顶点的坐标...(x,y,z)定义了多边形在3D空间中的位置,这里的多边形通常是三角形和四边形。...就是向量和坐标的表示方法是一样的 ? 。于是这里引入齐次坐标(w)来区分,w=0,则表示向量,否则表示点。于是我们的向量就长这样:(x, y, z, w)。...值得一提的是,齐次坐标表示方法不唯一,(x, y, z, w)跟(x/w, y/w, z/w, 1)表示同一个点,后者为齐次坐标的正常化处理。...旋转三个矩阵,分别对应x、y、z轴,这个坐标轴遵循右手法则,右手法则就是: ? 那么比如我们绕z轴旋转,使用上面的第三个矩阵,旋转90度,效果这样: ? 缩放 ?

    2.1K10

    使用Three.js构建基础3D场景 | 《Three.js零基础直通03》

    解压缩后的文件夹大概长这样: /assets/lessons/03/image-1.png 打开 build/ 文件夹并且将其中的 three.min.js 文件复制粘贴到你的项目中 复制粘贴完后,你的项目文件夹应该有三个文件了...如果你使用console.log() 去打印这个变量,你将看到很多信息 console.log(THREE) THREE这个变量包含了 Three.js 项目中可能用到大多数类、方法和属性。...在一个场景中我们也可以布置多个摄像头,就像拍电影时的多个机位,我们可以在这些相机之间切换。不过,通常我们只使用一个相机。 在Three.js中有两种类型的相机类型,一种是透视相机,一种是等距相机。...在html的body中添加 标签 要创建渲染器,我们要用到WebGLRenderer类,这个类在实例化的时候需要我们提供一个画布对象的参数...位置position是一个具有三个属性的对象,这三个属性分别为 x轴,y轴和z轴。那么我们通过设置它们,就可以移动相机。现在我们把相机移动到z轴为3的位置。

    5.7K40

    JS 3D 模型

    这是一个简单的 JS 3D 模型,能跑在包括 IE6 的所有浏览器上,结合一下 tween 缓动算法,理论上已经可以完美模拟像 http://www.cu3ox.com/ 这个网站上方 banner 的各种变换效果了...坐标系 我们通常用一根带原点和正方向箭头的直线来表示数轴,数轴就是一个一维坐标系,两条在原点处相交并互相垂直的数轴就形成了二维坐标系,也叫平面直角坐标系,它用两个参数 x,y 来表示平面上一个点的位置,...在平面直角坐标系上,加入一条经过原点且垂直于该平面的数轴就形成了三维坐标系,它用三个参数 x,y,z 来表示空间中一个点的位置。...x 轴、y 轴和 z 轴旋转。...画家算法里有多种实现,最常见的也最简单的是深度排序,本例用的也是深度排序,首先令每个面都具有中心点,再根据中心点的 z 轴坐标由大到小对面进行排序,排完序后的面即是离观察者由远及近的一个顺序,最后再逐个面进行渲染即可

    3K20

    玩转C4D丨3D视觉设计必备指南

    地面吸附对齐插件-Snap To Floor  支持Win/Mac,Cinema 4D R17/R18/R19/R20/R21 使用Snap To Floor ,可以快速让对象物底部吸附对齐Y轴地面,且支持选择多对象同时对齐地面...撤销C4D摄像机误操作 在制作场景的过程中,有些设计师忘记给相机打上“保护”标签,导致误操作移动了原来摆好的相机位置,这时按Command/Ctrl+Z是没有办法使相机恢复到原来位置的,这个时候很多设计师只能手动重新摆放相机位置...,一点一点对齐,结果时间花了,最后相机还是没办法摆放到原来合适的位置,正确的方法是使用快捷键Command/Ctrl+Shift+Z,这样相机就可以恢复到原来的位置。...快速对齐模型轴心 C4D提供了多种轴对齐方式,包括修改X,Y,Z轴数据对齐,父子级对齐等,但是效率最高的还是通过“PSR转移”命令来对齐。...自动保存设置,防止软件崩溃 这个设置关键时候可以“救命”,因为C4D是基于CPU进行渲染的,时常会在你毫无防备的情况下崩溃,所以建议大家在编辑-设置-文件里打开自动保存。

    1.7K22
    领券