我正在尝试将图像映射到球体上,遵循persp3d文档中的这个示例:
lat <- matrix(seq(90,-90, len=50)*pi/180, 50, 50, byrow=TRUE)
long <- matrix(seq(-180, 180, len=50)*pi/180, 50, 50)
r <- 6378.1 # radius of Earth in km
x <- r*cos(lat)*cos(long)
y <- r*cos(lat)*sin(long)
z <- r*sin(lat)
open3d()
persp3d(x, y, z, col="white",
texture=system.file("textures/worldsmall.png",package="rgl"),
specular="black", axes=FALSE, box=FALSE, xlab="", ylab="", zlab="",
normal_x=x, normal_y=y, normal_z=z)
我最终想要在球体上的特定点上添加对象,因此需要知道图像文件中的像素坐标对应于x,y,z(或纬度,长度)值。换句话说,假设worldsmall.png是什么地图投影是persp3d? (我不希望它很好地映射到传统的地图投影上,因为persp3d显然不仅限于球体,但必须有一些算法将一组坐标转换为另一组坐标。)< / p>