小编Ale*_*der的帖子

围绕任意轴的圆周旋转

我正在编写星际争霸2自定义地图,并在3D中获得了一些数学方法.目前我正在尝试创建和旋转任意轴周围的点,由x,y和z给出(xyz向量被标准化).

我一直在尝试和浏览互联网上的很多东西,但我不知道它是如何正常工作的.我当前的脚本(你可能不知道语言,但它没什么特别的)是几个小时打破所有内容的结果(无法正常工作):

    point CP;
fixed AXY;
point D;
point DnoZ;
point DXY_Z;
fixed AZ;
fixed LXY;
missile[Missile].Angle = (missile[Missile].Angle + missile[Missile].Acceleration) % 360.0;
missile[Missile].Acceleration += missile[Missile].AirResistance;
if (missile[Missile].Parent > -1) {
    D = missile[missile[Missile].Parent].Direction;
    DnoZ = Point(PointGetX(D),0.0);
    DXY_Z = Normalize(Point(SquareRoot(PointDot(DnoZ,DnoZ)),PointGetHeight(D)));
    AZ = MaxF(ACos(PointGetX(DXY_Z)),ASin(PointGetY(DXY_Z)))+missile[Missile].Angle;
    DnoZ = Normalize(DnoZ);
    AXY = MaxF(ACos(PointGetX(DnoZ)),ASin(PointGetY(DnoZ)));
    CP = Point(Cos(AXY+90),Sin(AXY+90));
    LXY = SquareRoot(PointDot(CP,CP));
    if (LXY > 0) {
        CP = PointMult(CP,Cos(AZ)/LXY);
        PointSetHeight(CP,Sin(AZ));
    } else {
        CP = Point3(0.0,0.0,1.0);
    }
} else {
    CP = Point(Cos(missile[Missile].Angle),Sin(missile[Missile].Angle));
}
missile[Missile].Direction = …
Run Code Online (Sandbox Code Playgroud)

3d

16
推荐指数
4
解决办法
4万
查看次数

标签 统计

3d ×1