我有一堆360个等角图像,每个图像上我都想放置一个兴趣点。为了简化此操作,我只想确定该点在图像上的2d位置。参见下图以进行澄清:
让我们说蓝点的像素位置为X:3000和Y:1300。 并且图像的总尺寸为4096x2048。
现在,我想将此点转换为球形位置,然后转换为3d位置。我尝试通过以下方式做到这一点:
Year = 2017
Month = 9
2017 > 2017 || (2017 == 2017 && 9 > 10)
false || (true && false)
false || false
false
在这种情况下,Vector3 PlaceMenu(Vector2 loc2d)
{
var phi = 2 * Mathf.PI * (loc2d.x / imageDimensions.x);
var theta = ( loc2d.y / imageDimensions.y) * Mathf.PI;
var pos = new Vector3(Mathf.Cos(phi) * Mathf.Sin(theta),Mathf.Sin(phi) * Mathf.Sin(theta),Mathf.Cos(theta));
pos *= offsetRadius;
return pos;
}
是球体的半径。
但是我通过这段代码得到的结果很奇怪。因为蓝点出现在其他二维位置所指定的其他位置。
我在这里做什么错了?
如果需要更多说明,我很乐意提供!