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

wordpress多语言网站萧江做网站

wordpress多语言网站,萧江做网站,安徽省建设干部学校网站关停,手机电商网站模板1. Three.js中的拾取 1.1. 从模型转到屏幕上的过程说开 由于图形显示的基本单位是三角形#xff0c;那就先从一个三角形从世界坐标转到屏幕坐标说起#xff0c;例如三角形abc 乘以模型视图矩阵就进入了视点坐标系#xff0c;其实就是相机所在的坐标系#xff0c;如下图那就先从一个三角形从世界坐标转到屏幕坐标说起例如三角形abc                   乘以模型视图矩阵就进入了视点坐标系其实就是相机所在的坐标系如下图       进入视点坐标系后再乘以投影矩阵就会变换到一个立方体内如下图:       这个时候整个三角形就位于中心位于坐标系原点边长为2的立方体内在这个立方体内三角形要计算光照要裁剪然后乘以视口矩阵最后转到屏幕上。           转到屏幕上后三角形的所有点的Z坐标就是深度坐标一定在(0, 1)这个区间内那么哪些点的Z坐标是0呢在投影坐标系中一定是投影视景体的前剪切平面上的点而投影视景体的后剪切平面上的点的Z坐标就是1。   1.2. 思路来了      根据以上三角形转换到屏幕坐标上的过程可以分析出鼠标在屏幕上点击的时候可以得到二维坐标p(x, y),再加上深度坐标的范围(0, 1), 就可以形成两个三位坐标A(x, y, 0), B(x, y, 1),  由于它们的Z轴坐标是0和1则转变到投影坐标系的话一定分别是前剪切平面上的点和后剪切平面上的点也就是说在投影坐标系中A点一定在能看见的所有模型的最前面B点一定在能看见的所有的模型的最后边假设视口矩阵的逆矩帧投影矩阵的逆矩阵模型视图矩阵的逆矩阵为M, N, P则 P * N * M * A A1,  P * N * M * B B1, 在世界坐标系中点A1B1就可以形成一个射线,此射线和模型再求交就能选中模型。如下图是在视点坐标系中的情形。注意求交可以在视点坐标系或者世界坐标系计算都可以但一般会在世界坐标坐标系中计算。       1.3. 拾取的优化射线和AABB包围盒求交       如果射线和所有的模型求交显然不是一个好办法一般情况下会进行一些优化比如先和模型的包围盒求交如果和模型的包围盒不相交的话就放过去否则就接着往下进行和模型的所有三角面片求交。         那么什么是包围盒呢在计算机图形学与计算几何领域一组物体的包围体就是将物体组合完全包容起来的一个封闭空间。将复杂物体封装在简单的包围体中就可以提高几何运算的效率。通常简单的物体比较容易检查相互之间的重叠。其中有一种包围盒叫做AABB, AABB的全称是axis aligned bounding box就是我们常常提到轴向包围盒这个盒子的边是平行于x/y/z轴的。 所有的2d和3d物体都是由点组成的所以只要找出这些物体的最大值点和最小值点那么就可以使用这两个点表示该物体的AABB包围盒了。       检测碰撞的时候我们只需要检测这些物体的AABB即他们的最大值点和最小值点是否相交就可以判断是否碰撞了。               1.4. 射线和三角形相交        判断射线和包围盒是否求交后就轮到判断是否和三角形求交了最先想到的是 首先判断射线是否与三角形所在的平面相交如果相交再判断交点是否在三角形内。判断射线是否与平面相交, 判断点是否在三角形内.   1.5. THREE.JS中求交的代码实现     three.js中的一个案例名字叫webgl_interactive_lines.html,可以选中一根线并显示一个小球。根据以上的思路代码注释如下   //鼠标点击的屏幕坐标转换到视点坐标系   var vector new THREE.Vector3( mouse.x, mouse.y, 1 ).unproject( camera );    //在视点坐标系中形成射线    raycaster.set( camera.position,vector.sub( camera.position ).normalize() );    //射线和模型求交选中一系列直线   var intersects raycaster.intersectObjects( parentTransform.children, true);   if ( intersects.length 0 ) {   if ( currentIntersected ! undefined )    {    currentIntersected.material.linewidth 1;    }      //第一个直线   currentIntersected intersects[ 0 ].object;   currentIntersected.material.linewidth 5;       //把球设为可见并且位置移到鼠标点击的屏幕位置   sphereInter.visible true;       sphereInter.position.copy( intersects[ 0 ].point );   }   欢迎加微信 nuonuodi_1, 交流更多的技术问题  转载于:https://www.cnblogs.com/lizhengjin/p/5914216.html
http://www.yutouwan.com/news/309489/

相关文章:

  • 吉林电商网站建设价格男装网站模板演示
  • dede静态网站网站页脚的信息都有什么
  • 中元建设集团网站网站ipv6改造怎么做
  • 企业网站设计的主要目的做网站延期交付了
  • 济南网站推广哪家好公司微信公众号怎么创建
  • 更换模板对网站seo的影响沈阳外贸网站制作公司
  • 在线做头像网站网站怎么加二级域名
  • 建筑设计网站app济南网站建设流程
  • 安徽住房和建设厅网站公关工资一般多少钱一个月
  • 有哪些网站是提供设计图片的wordpress边栏小工具
  • 做网站公司选择哪家好郑州地区网站建设公司
  • 企业网站源码 vue公司网站首页的图片怎么做
  • 制作充值网站延边app网站开发
  • 电子商务网站建设的一般步骤有网站名称推荐
  • 个人网站注册公司开发公司虚列成本
  • 安庆市建设银行网站公司简介模板素材
  • 贵阳公司做网站朱能源做网站
  • 长沙专业建设网站手机的网站建设目标
  • 最全的提交网站入口大全企业网站排名提升软件能优化
  • 东莞网站排名优化seo龙岩平面设计
  • 赤峰北京网站建设小程序代理模板
  • 临清做网站推广wordpress应
  • 制作一个网站数据库怎么做wordpress三栏博客主题
  • 手机网站jquery底部导航菜单注册深圳公司
  • 江苏省句容建设局网站建筑公司组织架构
  • 站长工具seo查询软件wordpress 多站点开启
  • 苏州建站网站模板网站图片链接到视频怎么做
  • 宁波网站开发建设公司网站被k是什么表现
  • 网站开发用哪些字体wordpress最好最全的教程
  • 网站制作销售术语网站前端需要会什么