- 最后登录
- 2024-5-2
- 在线时间
- 650 小时
- 阅读权限
- 100
- 注册时间
- 2009-7-6
- 积分
- 2998
- 帖子
- 1823
- 精华
- 6
- UID
- 102191
- 性别
- 保密
- 兴趣爱好
- 理论
结构
破解
- 积分
- 2998
- 帖子
- 1823
- 精华
- 6
- UID
- 102191
- 性别
- 保密
- 兴趣爱好
- 理论
结构
破解
|
hubo5563 发表于 2014-5-5 11:16
[ 本帖最后由 hubo5563 于 2014-5-5 11:53 编辑 ]
转动操作的块轮换我也是手工输入的,魔方复杂时数据很多 ...
胡老师,请教一下视角转动的问题?
我的程序之前视角只有二维转动,现在写成三维转动,具体算法是这样的:
这里Dy和Dx是鼠标移动的“速度”(两个事件间单位时间移动的距离);
camera.lat是摄像机的纬度;
camera.lon是经度;
camera.rot是摄像机绕垂直于屏幕轴转的角度。
那几个三角函数是刚算好的。
camera.lat+=Dy*cosRot-Dx*sinRot;
var Dlon=(Dx*cosRot+Dy*sinRot)/cosLat;
camera.lon+=Dlon;
camera.rot+=Dlon*sinLat;
问题在于鼠标移动的事件是一步一步的,做不到真正的微分,所以会有少量的偏差,在一些地方偏差比较大,如果拖动得太快,偏差会大得无法忍受。
我看您的魔方是没有这个问题的,请问应该如何避免这个问题呢? |
|