[Armory]实现相机的漫游功能
通过Haxe脚本实现相机的移动和旋转功能,参考代码如下:
// 相机旋转,设定lookAt目标示例
package arm;import iron.math.Quat;
import iron.object.Object;
import iron.Scene;
import iron.math.Vec4;class MyTrait extends iron.Trait {var cam: Object = null;var lookat = new Vec4(5, 5, 5);var q = new Quat();public function new() {super();notifyOnInit(function() {cam = Scene.active.getChild("Camera");lookat = Scene.active.getChild("Cube").transform.loc;});notifyOnUpdate(function() {var loc = cam.transform.loc;var angleXY = this.getAngleXY(lookat, loc);var angleZ = this.getAngleZ(lookat, loc);q.fromEuler(0.5*Math.PI+angleZ, 0, angleXY-0.5*Math.PI);cam.transform.rot.setFrom(q);cam.transform.buildMatrix();});// notifyOnRemove(function() {// });}// 计算绕Z轴旋转的角度差private function getAngleXY(lookAt: Vec4, cameraLoc: Vec4) {var xd = Math.abs(lookAt.x - cameraLoc.x);var zd = Math.abs(lookAt.y- cameraLoc.y);var angle = 0.0;if (lookAt.x > cameraLoc.x) {if (lookAt.y >= cameraLoc.y) {// quadrant 1angle = Math.atan2(zd, xd);} else {// quadrant 4angle = 2 * Math.PI - Math.atan2(zd, xd);}} else {if (lookAt.y >= cameraLoc.y) {// quadrant 2angle = Math.PI - Math.atan2(zd, xd);} else {// quadrant 3angle = Math.PI + Math.atan2(zd, xd);}}return angle;}// 计算Z轴方向的角度差private function getAngleZ(lookAt: Vec4, cameraLoc: Vec4) {var dif = new Vec4().subvecs(lookAt, cameraLoc);var delZ = lookAt.z - cameraLoc.z;return Math.atan2(delZ, Math.sqrt(dif.x*dif.x+dif.y*dif.y));}
}
可以正常运行,不过在渲染过程中,似乎会出现场景闪烁的现象,欢迎大牛们指导指导。
[Armory]实现相机的漫游功能相关推荐
- XT910开通了GPRS却上不了网的原因--“数据漫游”功能关闭导致的
XT910开通了GPRS却上不了网的原因,用360优化大师的联网修复功能修复和海卓冲浪一键设置APN也没用 设置了多次才发现是"数据漫游"功能关闭导致的. 设置里找 数据管理 ...
- QQ客户端管理聊天记录漫游功能 | 解决经常弹窗消息漫游安全验证,QQ服务独立密码的问题
QQ客户端管理聊天记录漫游功能 (解决经常弹窗消息漫游安全验证,QQ服务独立密码的问题) 前言 聊天记录漫游功能 情况1:忘记QQ独立服务密码 情况2:设置聊天记录漫游 情况3:更改独立密码验证频率 ...
- 记录一下家里双路由实现wifi漫游功能
家里的光猫在二楼,但是有时候比如朋友来家里一般在一楼玩,二楼的光猫发出的WIFI信号比较弱,网速慢.刚好家里有两个路由器,在老舅的指导下完成了配置.这篇文章主要用来记录一下自己的配置以防遗忘. 基本环 ...
- Android -- 小功能 仿美图秀秀(美颜相机)马赛克功能
前言: 之前公司有需求,需要对图片进行编辑,功能参照美图秀秀(或者美颜相机)的功能(带手指触动预览图功能.带放大缩小实施涂鸦功能),上网找了一堆源码,发现没有类似的,只能自己写 实现思路: 见源码,下 ...
- Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题
Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题 1.调用相机,兼容7.0 AndroidManifest配置 <providera ...
- 新论文 | 基于CATIA的线性工程BIM模型漫游功能开发
本文灵感来源于嘉兴市快速路环线一期工程BIM应用,2019达索系统CCT峰会 0 内容概要 为了避免模型在专业软件之间反复导入导出,以及导出过程中的模型要素丢失问题,笔者提出了一种基于动态视点的线性工 ...
- android调用系统相机实现拍照功能
在实现拍照的功能时遇到了很多问题,搜索了很多资料,尝试了很多办法,终于解决了,下面简要的描述下在开发过程中遇到的问题. 虽然之前看过android开发的书,但是没有做过东西,这次也是临时决定让我做一个 ...
- 美颜相机的基本功能实现
美颜相机的基本功能实现 基本知识 在学习了在标准绘制图形库中进行简单的递归图像实现后,我们把目光聚焦到了对于复杂图片文件的处理上,在这里需要简单介绍一下关于图像色彩的知识,以及缓存图片类的介绍. 图形 ...
- python控制相机自动拍照_微信小程序实现倒计时调用相机自动拍照功能
这篇文章主要为大家详细介绍了微信小程序实现倒计时调用相机自动拍照功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了微信小程序定时拍照的具体代码,供大家参考,具体内容如下 在某 ...
最新文章
- ThreadPoolTaskExecutor多线程使用,及线程池配置
- rss聚合模式案例_RSS的完整形式是什么?
- 【资源】史上最全数据集汇总
- php如何查看openssl扩展安装成功,php如何安装openssl扩展
- STM32+AD7705实现电压采集
- 黑马程序员python入门学习笔记
- 电流环扰动观测器、PI参数自动生成 观测器对扰动进行补偿,能有效提高电流环抗扰动能力,并且能对反电势扰动起到很好的作用
- HTML5 新特性 - WebSocket实现聊天(群聊天室、一对一聊天)
- c语言srand函数作用,C语言中srand随机函数怎么用?
- 接口测试平台代码实现134: 全局变量-13
- substr()函数
- Java物联网企业级项目 亿可控系统分析与设计
- 京东活动+自动运行脚本+签到2021.05.26更新
- 【soft6星评论】中台只是一种说法,中小企业主们要擦亮眼睛
- 冷笑话大集合,越往后越冷哦
- 前端播放大视频卡顿的解决(m3u8视频流)
- 惊险17分钟,这个阿里巴巴程序媛机智化解全局性重大故障
- MySQL数据库——案例:电子商务网站设计
- 使用ImageJ批量处理图像 超好用持续更新常用操作
- 可以动态添加、模糊搜索的单选下拉框插件formSelects