2013-04-24 169 views
0

我正在設計一些程序,模擬鋼絲繩爲我的學士論文。但是,當試圖讓一個點(中心線)圍繞電纜中心旋轉(中間電纜)時,該點不旋轉,但是呈螺旋形:轉換到電纜中心。圍繞點旋轉變成螺旋

我的代碼是這樣的:?

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); 

任何人知道這是怎麼做了一圈,並沒有轉化爲中心我試圖繞

+0

爲了更快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 – 2013-04-24 10:33:18

回答

0

您的糞堆點重新計算,似乎是有缺陷的;假設z是德爾塔角度:

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。它很可能性能不佳,並且不檢查數值穩定性。