绕点旋转变成螺旋状

时间:2013-04-24 10:27:27

标签: java rotation spiral

我正在为我的学士论文设计一些模拟钢丝绳的程序。但是当试图制造一个点(一条线的中心(midden)围绕电缆的中心(middencable)旋转时,该点不旋转,而是呈螺旋形状:转换到电缆的中心。

我的代码是:

z =  Math.toRadians( z);
        double xpoint = super.midden.getX(); //original point
        double ypoint = super.midden.getY(); //original point
        double cCableX = super.middenCable.getX();
        double cCableY = super.middenCable.getY(); 
        double dx = xpoint - cCableX;
        double dy = ypoint - cCableY;
        double cosangle = Math.cos(z);
        double sinangle = Math.sin(z);

        double x1 = cCableX + cosangle * dx - sinangle * dy;
        double y1 = cCableY + sinangle * dx - cosangle * dy;


        super.midden.setX(x1);
        super.midden.setY(y1);

任何人都知道如何制作一个圆圈,而不是转换到中心我试图转动?

1 个答案:

答案 0 :(得分:0)

你重新计算中间点似乎有缺陷;假设z是delta角:

double curangle = Math.atan2(dx, dy);
double dist     = Math.sqrt(dx*dx + dy*dy);
double x1 = cCableX + dist * Math.cos(curangle+z);
double y1 = cCableY + dist * Math.sin(curangle+z);

这段代码是poc。它很可能表现不佳,而且没有检查数值稳定性。