当前位置: 首页 > news >正文

网站建设问卷调查视频网站 界面设计

网站建设问卷调查,视频网站 界面设计,北京中文seo,手机网站制作的价格Three.js 提供了 Plane 概念来表示在 3d 空间中无限延伸的二维表面。 这对于光标交互很有用#xff0c;因此你可能需要了解如何设置此平面、将其可视化并根据需要进行调整。 推荐#xff1a;使用 NSDT场景设计器 快速搭建 3D场景。 Three.js 的 Plane 文档很好而且准确…Three.js 提供了 Plane 概念来表示在 3d 空间中无限延伸的二维表面。 这对于光标交互很有用因此你可能需要了解如何设置此平面、将其可视化并根据需要进行调整。 推荐使用 NSDT场景设计器 快速搭建 3D场景。 Three.js 的 Plane 文档很好而且准确但它肯定假设你是一个“数学人”我不是并且如果你从未听说过四元数之类的东西它不会解释如何让事情正常进行 和平面法线。 我不得不通过老式的艰难方式学习这些东西所以我为像我这样刚接触 3d 图形的其他开发人员整理了本指南。 首先最好直观地感受一下什么是平面你将如何在 3d 空间中表示平面 我想您可以使用 3 个点定义任何平面创建一个沿其表面无限延伸的三角形。 三角形的大小无关紧要只要斜率相同平面仍然相同。 这是一个 Blender 场景来帮助可视化 因此将平面表示为三个点的集合绝对可行但也许有更好的方法来表示这种结构。 有一个概念叫做表面法线它是一个垂直于表面的矢量即指向某个方向的箭头。 这是维基百科的一张图片显示了一个带有两个法向量的表面一个向量由三个参数组成x、y 和 z 这是曲面法线的图示 你可以想象每个法线都有一个平面如下所示 这是 three.js 的 Plane 定义的方式在其构造函数中清晰可见 Plane( normal : Vector3, constant : Float )normal - (optional) a unit length Vector3 defining the normal of theplane. Default is (1, 0, 0).constant - (optional) the signed distance from the origin to theplane. Default is 0.所以要设置一个面朝上的平面你可以这样做 var myPlane new THREE.Plane(new THREE.Vector3(0, 1, 0), 0);法向量指向上方因为 y 有一个值它根本没有被拉向 x 或 z 方向。 事实上如果将法向量设置为 (0, 2, 0) 或 (0, 200, 0)你会得到完全相同的平面因为法向量重要的是它的方向而不是它的大小。 常量值 0 表示该平面的中心恰好位于场景的中心点。 顺便说一下默认情况下这个平面在你的 three.js 场景中是不可见的。 要查看它请将 PlaneHelper 连接到它。 这可能会让人感到困惑但如果你的目标是实际绘制此表面供用户查看那么你将使用 PlaneGeometry它继承了 Object3D 的所有基本方法。 我在本文中讨论的 Plane 类只是一个数学平面但你需要使用这种平面才能使用 Ray.intersectPlane()这就是你在three.js中将鼠标事件连接到一个平面的方式。 所以现在你知道如何初始化平面并移动它了。 如果你需要旋转这个东西怎么办 好吧你总是可以只更改平面法向量中的参数对吗 不过这实际上是一种非常困难的平面工作方式。 如果你需要将此平面的旋转与场景中已有的可见对象的旋转相匹配或者只是应用诸如 45 度旋转偏移之类的东西那么乱用法向量可能会令人沮丧。 我将介绍一些使用一些工具旋转该平面的基本模式。 你将需要学习如何使用四元数。 它们看起来真的很复杂但你只需要知道它们是一组定义 three.js 对象当前旋转状态的坐标每个 Object3D 都有一个。 你可以使用 three.js 的 API 将更改应用于四元数并修改它们以执行需要执行的操作。 // Theres an object in the scene - myObject - and // I want to take its rotation and make my plane // have the same rotation. var rotation myObject.quaternion.clone();// The default forward vector for 3D objects is (0, 0, 1), // so first set the normal to match myObject like that, // and then make the planes rotation match myObject as well. myPlane.normal.set(0, 0, 1).applyQuaternion(rotation);在将四元数应用于平面之前还可以根据需要对其进行任何更改。 假设你需要在此旋转上进行 90 度偏移 var offset new THREE.Quaternion();offset.setFromAxisAngle(// This rotation offset is along the X axis,// so use a vector where X is 1 here.new THREE.Vector3(1, 0, 0), // Offset by -90 degrees (in radians)-Math.PI / 2);// Modify the rotation rotation.multiply(offset);// The rotation quaternion is now ready to be applied to the plane我知道对于一些简单的旋转来说这似乎是很多繁琐的事情。 只需将其视为工具包中的另一种模式即可。 其实three.js的Plane API中加入一些简单的旋转机制已经讨论过了。 你不能像 Object3D 一样旋转 Plane 的原因背后的数学原理有点超出我的理解但听起来好像是因为 Plane 没有“局部坐标系”。 所以这篇文章有点密集。 但我希望它对进入 three.js 这个领域的任何人都有帮助。 这也可以看作是抽象的证明确实可以让 3D 图形满足你的需求而无需理解其背后的所有数学原理并且你会逐渐感受到使用矢量和各种坐标系。 原文链接Three.js无限平面 — BimAnt
http://www.hkea.cn/news/14410676/

相关文章:

  • 手机网站制作移动高端网站建设个人网站整站下载
  • .mom域名可以做网站吗管理咨询公司起名
  • 网站打开的速度很慢应该怎么做上海关键词优化软件
  • 国际贸易网站大全wordpress带整站数据
  • 专业服务网站开发装修3d效果图怎么制作
  • 网络网站关键词品牌注册号是哪个
  • 做国外网站汇款用途是什么课工场网站建设培训
  • html5网站制作实战网站建设一般用什么语言好
  • 做壁纸网站城乡与建设厅网站
  • 自己做的网站访问速度慢系统搭建是什么意思
  • 网站建设需要用到什么软件有哪些网站开发技术
  • 中国工厂网站官方网站临沂做网站需要多少钱
  • 济南建设信息网站普通展示型网站
  • 重庆永川网站建设价格vi设计样机
  • 在线制作动画的网站已经备案的域名做电影网站
  • 做电影网站一年赚多少wordpress网站模板怎么用
  • 网站建设 博采电影网站建设成本
  • 网站建设中最重要的网络公关
  • 网站建设分几个阶段做网站主要步骤
  • 绿色调网站别人帮做的网站到期续费
  • 贸易公司做网站旅游营销网站开发
  • 没有网站想做个链接页面怎么做中文建网站
  • 摄影网站设计理念阿里wordpress怎么安装
  • 网站改版 优化广德网站建设
  • 网站建设渠道合作汽车网站有哪些
  • 聊城房地产网站建设沧州网站建设培训学校
  • 有哪些专门做创意门头的网站安防公司网站建设
  • 优质ppt网站国外html5网站建设研究现状
  • 网站建设汽车后市场微信怎么创建自己的小程序
  • 烟台网络公司网站建设长沙专业建设网站企业