|
|
发表于 2007-1-18 00:02:00
|
显示全部楼层
Re:调查----想给大家写个教程
360度飞行……
把摄像机类里一改就差不多了
//Orientation, Position都是struct {double x,y,z;}
//其余未标明的为常量
public void Go()
{
double PosV, DeltaX, DeltaY, DeltaZ;
PosV = FSpeed;
DeltaX = 0.1 * PosV * Math.Sin(PI / 180 * (Orientation.y));
DeltaY = 0.1 * PosV * Math.Sin(PI / 180 * (Orientation.x));
DeltaZ = 0.1 * PosV * Math.Cos(PI / 180 * (Orientation.y));
Position.x += DeltaX;
Position.y -= DeltaY;
Position.z -= DeltaZ;
}
public void SetView
{
glRotated(Orientation.x, 1, 0, 0);
glRotated(Orientation.y, 0, 1, 0);
glRotated(Orientation.z, 0, 0, 1);
glTranslated(-Position.x, -Position.y, -Position.z);
}
注:不赶直接贴vb.net代码,所以翻译成c#……
|
|