2

我正在尝试将图像映射到球体上,遵循 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(或 lat、long)值。换句话说,persp3d 假设 worldsmall.png 的地图投影是什么?(我不指望它能很好地映射到传统的地图投影上,因为 persp3d 显然不限于球体,但必须有一些算法将一组坐标转换为另一组坐标。)

4

0 回答 0