function animate(){requestAnimationFrame(animate);renderer.render(scene, camera);for (let k = 0; k < hudieList.length; k++) {// hudieList中存储的是很多个蝴蝶模型Sceneif (hudieList[k]) {     hudieTrans(hudieList[k]);}}
}
// model是蝴蝶模型
function hudieTrans(model){if (!model) return;if(model.targetPosition === undefined){model.targetPosition = new THREE.Vector3(model.position.x, model.position.y, model.position.z);}if (model.position.distanceTo(model.targetPosition) < 0.4)  {// 生成新的飞行目标位置var targetPosition = model.targetPosition = new THREE.Vector3(randomNum(-50, 50), randomNum(-50, 50), randomNum(-50, 50));var dirV3 = new THREE.Vector3();dirV3.subVectors(model.targetPosition, model.position);  // 计算飞行方向存储在dirV3中model.speedV3 = dirV3.normalize();model.speedV3 = v3Scale(model.speedV3, 0.02);//设置飞行速度,第二个参数值越小飞行速度越慢,反之越快model.lookAt( targetPosition.x, targetPosition.y, targetPosition.z);// 改变蝴蝶头部方向} else  {model.position.x += model.speedV3.x;model.position.y += model.speedV3.y;model.position.z += model.speedV3.z;}}function v3Scale(v3,scale){return new THREE.Vector3(v3.x * scale, v3.y * scale, v3.z * scale)
}function randomNum(minNum, maxNum) {switch (arguments.length) {case 1:return parseInt(Math.random() * minNum + 1, 10);case 2:return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);default:return 0;}
}

THREE.js实现蝴蝶随机方向飞舞(飞行过程中可随机改变方向)相关推荐

  1. 随机从mysql中读取_如何实现MySQL表数据随机读取?从mysql表中读取随机数据

    文章转自 http://blog.efbase.org/2006/10/16/244/ 如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysq ...

  2. input内容右对齐_向右打方向倒库过程中,如何判断后车距离?光线较暗车库倒库技巧...

    现在进入泉城广场的地下停车场,根据上方导向箭头提示,车位和出口都在右转方向. 现在大家从画面中可能觉得光线还可以,其实这个停车场光线比较差,从后视镜中可以看到相对真实的光线状态. 很多朋友曾经问过我, ...

  3. 随机算法python_在python中实现随机选择

    想从一个序列中随机抽取若干元素,或者想生成几个随机数. random 模块有大量的函数用来产生随机数和随机选择元素.比如,要想从一个序列中随机的抽取一个元素,可以使用random.choice() : ...

  4. python随机选择_在python中实现随机选择

    想从一个序列中随机抽取若干元素,或者想生成几个随机数. random 模块有大量的函数用来产生随机数和随机选择元素.比如,要想从一个序列中随机的抽取一个元素,可以使用random.choice() : ...

  5. mysql随机选择记录表_Mysql表中取随机记录

    RAND()是Mysql中的取随机数函数,该函数返回一个float型数值v,v的值为0 例如: mysql> SELECT RAND(); -> 0.9233482386203 mysql ...

  6. integer java 随机_如何在Java中生成随机BigInteger值?

    我需要生成0(包含)到n(包含)范围内任意大的随机整数.我最初的想法是调用nextDouble并乘以n,但一旦n大于253,结果将不再是均匀分布的. BigInteger具有以下构造函数: publi ...

  7. python随机库函数_python标准库中的随机分布函数

    random.random() 返回一个 随机的浮点数, 值域为 [0.0, 1.0] random.uniform(a, b) 均匀分布 返回一个随机的浮点数N, N的值在a与b之间 等同于 a + ...

  8. 2023.2.3,周五【图神经网络 学习记录17】二部图——BiNE算法:显式关系,隐式关系;新的随机游走方式 特点:随机游走次数 是跟节点中心性相关的,在随机游走的过程中 添加一个停止随机游走的概率

    声明:仅学习使用~ 前情提要: 2023.2.2,周四[图神经网络 学习记录16]异构图Graph Embedding算法--GATNE(异构图多属性 多边 类型算法),不建议普通PC跑-PyChar ...

  9. 基于脑功率谱检测飞行过程认知网络的脑机接口

    飞行员的疲劳驾驶会导致严重的事故,尤其是在大型飞行任务中.目前还没有一种有效的手段去监测飞行过程飞行员大脑的疲劳状态. 飞行员在驾驶过程中,主要有4个认知状态发生变化的阶段, 1.起飞和下降过程中,飞 ...

最新文章

  1. 测试php性能和mysql数据库性能的工具_和找出瓶颈的方法_php面试基础题
  2. android drawerlayout 遮罩层白色,DrawerLayout放在Toolbar的下方导致NavigationView出现与状态栏等高的遮...
  3. 生成Base58格式的UUID(Hibernate Base64格式的UUID续)
  4. appium 的 android sdk
  5. android鼠标滚轮事件坐标,android 处理鼠标滚轮事件 【转】
  6. ExtJS学习--------Ext.Element中的经常使用事件和其它重要的方法学习(实例)
  7. s5-14 链路状态路由选择
  8. php中时间轴,PHP时间轴函数
  9. SAP澄清概念、理清思路、组织机构
  10. putty 32位_了解linux系统远程操作软件,putty的安装过程!
  11. [蓝牙 4.0 CC2541 开发] BLE架构与OSAL
  12. 概率论基础(3)一维随机变量(离散型和连续型)
  13. __gxx_personality_v0详解
  14. pandoc md 文件转化pdf(中文字体)
  15. SQL中的COALESCE()函数
  16. 名帖344 怀素 草书《佛说四十二章经》
  17. 信息系统集成-模拟二错题
  18. Phoenix 基本介绍
  19. 为什么美团点评系统架构这么牛?
  20. 【数据挖掘】关联规则基本概念及Apropri算法

热门文章

  1. mybatis-plus 的分页使用(物理分页)
  2. 戴尔 U3223QE 怎么样
  3. kettle利用时间戳(timestamp)做增量抽取
  4. 基于形态学眼底血管提取
  5. 直属事业单位和所属事业单位的区别
  6. 默纳克服务器协议,默纳克协议代码表、常见电梯系统密码表.docx
  7. 安全合规--45--基于国内法律法规的企业数据合规体系建设经验总结(三)
  8. 如何解决软电话中的来电转移问题
  9. 入驻宜春高铁站!“欢乐消2”助力人们安全出行
  10. 万字庖解区块链跨链技术