0
A
回答
1
我很确定标准库已经有这个。如果存在虚数类型,它们恰好是这样的(real = x,imag = y,arg(val)= angle,abs(val)= radius)。使用数学库(atan2,sin,cos和sqrt)也不是那么困难。
1
是不是就像2功能?当然你可以用任何语言搜索它并自己转换它。
这里是我的代码做矩形 - >极(另一种方式是很容易的)在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 = angle2,弧度。
编辑: 由我的代码,我的意思是一些代码,我从某处偷了,像一次使用。
+3
糟糕的实现。你应该使用atan2而不是atan来避免if-elses。 – Tronic 2010-03-03 07:25:26
1
你要求的是一个Map Projection库。最流行的开源库之一是PROJ.4,它有一个Java Implementation。
您必须决定要使用的投影。他们有不同的属性。 Mercator很常见,并且是Google地图正在使用的一种。墨卡托的缺点是你不能在弧形杆上使用它。
相关问题
- 1. 将极坐标图像转换为直角坐标系
- 2. 从直角坐标转换到对数极坐标
- 3. 如何将直角坐标转换为极坐标使用函数
- 4. 将图像从笛卡尔坐标转换为极坐标
- 5. 将笛卡尔坐标转换为极坐标 - Matlab
- 6. Mathematica 8:从直角坐标转换为球坐标
- 7. 将矩形点转换为极坐标
- 8. 将坐标转换为像素坐标
- 9. 将坐标调查坐标转换为有效的esri坐标
- 10. Java Slick2d - 如何将鼠标坐标转换为世界坐标
- 11. 如何在postgresql中将球面坐标转换为直角坐标
- 12. 对数极坐标(或对数极坐标)VS极坐标
- 13. 将鼠标坐标转换为Qt中的标签坐标
- 14. Java - 将MGRS坐标转换为LatLon WGS
- 15. 将本地(=旋转后的)坐标转换为全局坐标
- 16. 将极坐标直方图与极坐标散点图结合起来
- 17. 将坐标转换为旋转坐标系
- 18. 将鼠标监听器坐标转换为图表坐标
- 19. 将屏幕鼠标坐标转换为窗口坐标
- 20. 极坐标直角坐标功能不输出正确的数据
- 21. pcolormesh极坐标
- 22. 极坐标
- 23. 将投影的坐标转换为常规的GPS坐标android
- 24. 极坐标坐标是错误的
- 25. 将three.js场景旋转转换为极坐标?
- 26. 将Glut鼠标坐标转换为opengl
- 27. 将子对象的坐标转换为世界坐标
- 28. 将相对坐标转换为绝对坐标的算法
- 29. 如何将OpenLayers中的“normal”坐标转换为OSM坐标
- 30. 如何将窗口的坐标转换为控制坐标
嗯...计算应该很简单,如果你查阅公式并自己实现它,它可能真的帮助你理解问题域。 – 2010-03-03 07:16:14
确实如此,但问题并不重要,所以不能帮助我学习新东西。但是如果有一些已经被使用过的东西,我会知道这个水管是正确的,并且可能会有一些“很好”的方法来做其他事情......如果不是,我当然会自己写。 – Ankur 2010-03-03 07:46:06