Rgl包中的persp3d函数如何映射纹理?

时间:2012-05-31 14:39:16

标签: r

我正在尝试将图像映射到球体上,遵循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>

0 个答案:

没有答案