Freemode基本完成,还缺一个RotZ的计算公式…

RT,具体公式等会贴出,顺便向各位高人求教RotZ的计算式子。

最好能用图示说明
贴出来有道理我就给你加分

图会很复杂,估计除我自己以外没人看得懂…(其实我自己也没完全搞懂)

well,这啥?

:lol 我画些图吧,不过别指望能看懂。

上面两张图仅仅是最开始的推测过程,后面的过程太过复杂,这里就不仔细讲了,最后(目前)实际的公式如下:
                        Position.RotY:=Position.RotY+cos(Position.RotX)*sin(Position.RotZ)*Axis1
                        Position.RotX:=Position.RotX-cos(Position.RotZ)*Axis1
                        Position.RotZ:=Position.RotZ+Axis2
                        Position.RotY:=Position.RotY+cos(Position.RotX)*sin(Position.RotZ-PI/2)*Axis3
                        Position.RotX:=Position.RotX-cos(Position.RotZ-PI/2)*Axis3
其中的Axis1,2,3分别代表三个输入轴的具体值。

[ 本帖最后由 honeyfox 于 2008-12-21 12:17 编辑 ]
freemode1.png
Freemode2.png

需在屏幕中表现的事物?

纯几何公式…

:lol 经过昨晚3个小时的苦思冥想以及十几次实验,终于把RotZ公式搞出来了。:victory:
所有公式整理如下:

Position.RotY:=Position.RotY+cos(Position.RotX)*sin(Position.RotZ)*Axis1
Position.RotX:=Position.RotX-cos(Position.RotZ)*Axis1
if(Position.RotX>=PI/2)
  TRotX:=Position.RotX-PI
elseif(Position.RotX<=-PI/2)
  TRotX:=Position.RotX+PI
else
  TRotX:=Position.RotX
end
Position.RotZ:=Position.RotZ-sin(Position.RotZ)*sin(TRotX)*Axis1

其中Axis1代表飞行控制摇杆的拉起/压低的轴,以压低为正方向,值域为-0.014 ~ 0.007。

FPS?
模拟空战?

进度要加快了,工程师们辛苦了~~~

喂,进度是不能催的:lol

给你一点压力才行:lol