C#的坚直方向视角怎么变换
我用下面的函数可以在水平方向上成旋转,可以在竖直方向上,不太对,好像摄像机自身也会旋转,然后就不行了
public void CMoveyz(ref bool btnflag, ref int zhfflag, ref float y, ref int a1, ref int b1, MouseEventArgs e)
{ 判断鼠标按下 坐标轴正负 用于判断上升还是下降 Y坐标 z坐标 我是在mousemove中调用的
if (btnflag == true)
{
if (y < e.Y)
{
if (a1 >= 40|| a1<= -40 )
{
zhfflag1 = (zhfflag1 + 1) % 2;
}
if (zhfflag1 == 1)
{
a1 =a1 - 1;
y = e.Y;
this.CameraPositioning();
}
else
{
a1 = a1 + 1;
y = e.Y;
this.CameraPositioning();
}
}
else if (y > e.Y)
{
if (a1 >=40 || a1 <= -40)
{
zhfflag1 = (zhfflag1 + 1) % 2;
}
if (zhfflag1 == 1)
{
a1 = a1 + 1;
y = e.Y;
this.CameraPositioning();
}
else
{
a1 = a1 - 1;
y = e.Y;
this.CameraPositioning();
}
}
else { }
}
if (zhfflag1 == 1)
b1 =-(int)System.Math.Sqrt((double)(1600 - a1 * a1));
else
b1= (int)System.Math.Sqrt((double)(1600 - a1 * a1));
}
[解决办法]
C#中的中由一个旋转坐标的方法,用那个非常方便,好像是TranslateTransform