[英]Java package that converts rectangular coordinates to polar coordinates
我需要將直角坐標轉換為極坐標。 您能推薦一個我可以使用的庫嗎,我不想自己寫這個。
這用於理解天文學圖像文件中包含的元數據。
我很確定標准庫已經有了這個。 如果存在虛數類型,它們將精確地執行此操作(實數= x,imag = y,arg(val)=角度,abs(val)=半徑)。 使用數學庫(atan2,sin,cos和sqrt)也不難。
這不只是兩個功能嗎? 當然,您可以搜索任何語言並自行進行轉換。
這是我的代碼在C ++中做矩形->極性(另一種方法很容易)
Vector3 C2P (const Vector3 &v)
{
float PI=3.14159260f;
Vector3 polar;
polar.x = v.Length();
if (v.z > 0.0f) {
polar.y = (float) atan ( v.z/sqrt (v.x * v.x + v.y * v.y));
}
else if (v.z < 0.0f) {
polar.y = (float) -atan (sqrt (v.x * v.x + v.y * v.y) / v.z);
}
else {
polar.y = 0.0;
}
if (v.x > 0.0f) {
polar.z = (float) atan (v.y / v.x);
}
else if (v.x < 0.0f) {
polar.z = (float) atan (v.y / v.x) + PI;
}
else if (v.y > 0) {
polar.z = PI * 0.5f;
}
else {
polar.z = -PI * 0.5f;
}
//polar.z=(polar.z/M_PI)*180;
//polar.y=(polar.y/M_PI)*180;
return polar;
}
請注意,結果為x =長度,y =角度1 z =角度2,以弧度為單位。
編輯:通過我的代碼,我的意思是我從某個地方偷來的一些代碼,就像一次使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.