所以最后选择的是Three.js,想尝试下webgl2.0的小伙伴可以试下Babylon.js。
技术实现
介绍完技术引擎后,接下来将结合整体的功能流程,为大家解析下如何通过技术实现。
step1:让球体运动起来
这是动画展示效果的第一步。通过Three.js的基本方法,很容易实现在场景中添加对象的功能。如上图所示,在场景中添加了一个球体,并让它做顺时针的转动,而让球表面的图做逆时针的转动,并向场景中添加了不断向z轴负方向运动的星星,和做一定角度的公转运动的卫星。
三维坐标系中的点坐标x,y,z可以转换成了(上图)中的极坐标r,θ,φ(半径r和两个角度θ 和φ),同样可以用来表示点的位置(反过来也能推导)。
球面上的方片也是由对象构成。人员签到成功之后,方片上会变成照片,这里需要事先计算出方片相对于球面的位置以便生成方片。根据前期配置的到场人数n,从而让球面生成均匀分布的n个点,得到每个点的极坐标系位置,再转换成点坐标位置,这些位置就是方片位置。
step2:加入“微笑”展示效果
前端通过轮询定时请求后端接口,来拉取人脸识别数据,展示之后告诉后端已经展示过了。由于现场人脸识别后的“微笑”需要实时展示在主屏上,每场年会活动到场人数不等(约500-1500人),在这一状况下,如何保证在规定时间内完成人员入场与展示。我们的方案是:展示时间可以动态调节,人流量大时识别成功之后大屏就展示快一些,反之则展示慢一些。
因此,需要在前端维护了一个队列,用于存储识别成功但还未展示人员,轮询拉取的数据会进入到队列中,展示过的数据则会从队列中移除,一个展示动画的时长会根据队列的长度动态调节,取值范围2.5-5s不等。
step3:让“微笑”随球体一起运动
“微笑”展示后,还有个照片飞回球面并跟着球体一起运动的效果。因为牵涉到坐标系的相对运动(球面的位置是相对于父元素来实现的),这一效果较难实现。
有疑问,点击“阅读原文”咨询!喜欢我,你就点个“在看”吧!
点亮星标,不错过每一次推送本文作者:冯艳,山东省烟台毓璜顶病院临床营养科副主任医师在临床中,我经常会被肿瘤患者扣问关于“忌口”和“
山西青年你想看的都在这里近日,全国各地的飞絮期光降跟着杨柳絮纷飞打喷嚏、鼻塞、鼻子痒又起头“骚扰”过敏性鼻炎患者的生活为了缓解症状
大家好,小伟今天来为大家解答larva动画以下问题,larva动画合集很多人还不知道,现在让我们一起来看看吧!1、《爆笑虫子》。2、《爆笑虫子》(
大家好,小娟今天来为大家解答牛股推荐股票交流群以下问题,牛股推荐股票交流群很多人还不知道,现在让我们一起来看看吧!1、179533491,大陆股
大家好,小娟今天来为大家解答营销培训课程以下问题,营销培训课程小吃营销很多人还不知道,现在让我们一起来看看吧!1、品牌管理课程:品牌
大家好,小美今天来为大家解答中国人民银行征信中心以下问题,中国人民银行征信中心官网查询入口很多人还不知道,现在让我们一起来看看吧!
大家好,小美今天来为大家解答死猪图片表情包以下问题,死猪图片大全猪瘟很多人还不知道,现在让我们一起来看看吧!1、这个梗出自于动画《猪
Copyright 2024.依依自媒体,让大家了解更多图文资讯!