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

南宁自助模板建站做网站需要代码么

南宁自助模板建站,做网站需要代码么,贵阳建设企业网站,展览搭建设计网站Raycaster光线投射 3D虚拟工厂在线体验 描述 光线投射Raycaster,用于进行raycasting(光线投射)。 光线投射用于进行鼠标拾取(在三维空间中计算出鼠标移过了什么物体)。 构造器 Raycaster( origin : Vector3, dire…

Raycaster光线投射

3D虚拟工厂在线体验

描述

光线投射Raycaster,用于进行raycasting(光线投射)。 光线投射用于进行鼠标拾取(在三维空间中计算出鼠标移过了什么物体)。

构造器

Raycaster( origin : Vector3, direction : Vector3, near : Float, far : Float )

参数描述
origin光线投射的原点向量
direction向射线提供方向的方向向量,应当被标准化
near返回的所有结果比near远。near不能为负值,其默认值为0
far返回的所有结果都比far近。far不能小于near,其默认值为Infinity(正无穷)

这将创建一个新的raycaster对象。

属性

属性类型描述
.farFloatraycaster的远距离因数(投射远点)。这个值表明哪些对象可以基于该距离而被raycaster所丢弃。这个值不应当为负,并且应当比near属性大
.nearFloatraycaster的近距离因数(投射近点)。这个值表明哪些对象可以基于该距离而被raycaster所丢弃。这个值不应当为负,并且应当比far属性小
.cameraCamera当对依赖于视图的对象(如Sprites等广告牌对象)进行光线投射时使用的相机。可以手动设置,或在调用"setFromCamera"时设置。默认为null
.layersLayers用于在执行相交测试时有选择地忽略3D对象。raycaster.layers.set( 1 );object.layers.enable( 1 );
.paramsObject具有以下属性的对象:{ Mesh: {}, Line: { threshold: 1 }, LOD: {}, Points: { threshold: 1 }, Sprite: {} }。其中threshold是光线投射与对象相交时的精度,以世界单位为单位
.rayRay用于进行光线投射的Ray(射线)

方法

函数名参数描述返回值说明
.setorigin : Vector3光线投射的原点向量undefined使用新的原点和方向更新射线
direction : Vector3标准化方向向量
.setFromCameracoords : Vector2标准化设备坐标中的鼠标二维坐标(X/Y应在-1到1之间)undefined根据相机和屏幕坐标更新射线
camera : Camera射线来源的摄像机
.setFromXRControllercontroller : WebXRController要复制位置和方向的WebXR控制器this从XR控制器更新射线
.intersectObjectobject : Object3D要检测相交的3D对象Array<Intersection>检测射线与单个对象的相交情况
recursive : Boolean是否检测所有后代(默认true)返回相交结果数组,按距离排序
optionalTarget : Array(可选)目标数组容器
.intersectObjectsobjects : Array<Object3D>要检测的3D对象数组Array<Intersection>检测射线与多个对象的相交情况
recursive : Boolean是否检测所有后代(默认true)返回相交结果数组,按距离排序
optionalTarget : Array(可选)目标数组容器

Intersection 类型定义

interface Intersection {distance: number;        // 射线起点到交点的距离point: Vector3;          // 交点世界坐标face: Face3 | null;      // 相交的三角面对象(可能为null)faceIndex: number;       // 相交面的索引号object: Object3D;        // 被相交的3D对象uv: Vector2;             // 交点的UV纹理坐标uv1?: Vector2;           // (可选)交点的第二套UV坐标normal: Vector3;         // 交点处的插值法向量instanceId?: number;     // (可选)InstancedMesh实例的ID
}

I说明

  1. Three.js 通过多态机制(不同对象实现自己的 raycast)实现灵活的相交检测。Raycaster 不会直接计算相交,而是调用每个物体自己的 raycast 方法。不同几何体类型(Mesh/Line/Points)有各自不同的相交检测实现。Mesh 会检测三角面相交,Line 会检测线段邻近点,Points 会检测点云中的点,它们的相交计算逻辑和阈值判断都不同。
  2. 默认情况下,Three.js 只检测射线从正面(法线朝向射线原点的一面)穿过网格面的情况。如果射线从背面(法线背向的一面)穿过,在材质中设置 side: THREE.DoubleSide 可启用双面检测。

代码

const raycaster = new THREE.Raycaster();
const pointer = new THREE.Vector2();
function onPointerMove( event ) {// 将鼠标位置归一化为设备坐标。x 和 y 方向的取值范围是 (-1 to +1)pointer.x = ( event.clientX / window.innerWidth ) * 2 - 1;pointer.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
}
function render() {// 通过摄像机和鼠标位置更新射线raycaster.setFromCamera( pointer, camera );// 计算物体和射线的焦点const intersects = raycaster.intersectObjects( scene.children );for ( let i = 0; i < intersects.length; i ++ ) {intersects[ i ].object.material.color.set( 0xff0000 );}renderer.render( scene, camera );
}
window.addEventListener( 'pointermove', onPointerMove );
window.requestAnimationFrame(render);
http://www.dtcms.com/a/617031.html

相关文章:

  • 重庆网站建设合肥公司网站内容建设方法步骤
  • 网站建设工作室发展网站核心词如何做
  • 淮南餐饮网站建设郑州建设网站公司
  • 如何做分销型网站微官网建设公司排行
  • 网站开发技术课程设计总结深圳app开发公司都有哪些
  • 中山外贸营销网站建设做百度网站每年的费用多少钱
  • wordpress站群管理系统宁波seo培训
  • 湖南环达公路桥梁建设总公司网站菲律宾做网站好吗
  • 北京做百度网站重庆建设工程信息网查询成绩分数
  • 淘宝客怎么做直播网站吗广告设计与制作专业就业方向
  • 黑龙江省城乡建设厅网站芜湖市建设路小学网站
  • 如何做商业网站推广seminar怎么读
  • 鹿泉区建设局网站wordpress优化速度
  • 廊坊seo排名外包什么是优化产业结构
  • 风景旅游网站建设的设计思路wordpress cookie伪造
  • 外贸网站怎么建设小程序开发指南
  • 九州建网站网站建站多钱
  • 深圳做琴行的公司网站百度一下一下你就知道
  • 河北省和城乡住房建设厅网站首页做网站后端语言用什么
  • 可以上传数据的网站开发建站赔补
  • 青岛网站建设服务中心房地产政策最新消息2022
  • wordpress4.9 多站点网站模版怎么做的
  • 网站建设可以先备案嘛码支付wordpress前端
  • nodejs可以做企业网站吗西安百度竞价托管
  • 没有空间可以做网站吗wordpress video plugin
  • 企业设计个网站wordpress首页显示全部内容
  • 义乌门户网站建设北京网站建设服务器维护
  • 天津建设工程计价网站好看的html代码
  • 织梦网站会员上传图片设计类专业需要艺考吗
  • wordpress 换中文字体柳州做网站seo哪家好