我正在使用persp并试图改变视角.相关参数是theta,phi但不幸的是,文档非常神秘(?persp)(和PS期待SO文档的另一个原因):
theta,phi:定义观察方向的角度.theta给出了方位角方向和方位角phi.
在详细信息部分,他们进入一些更循环的解释:
通过观察由
theta和定义的方向的原点来观察表面phi.如果theta和phi都是零,则观察方向直接在负y轴下方.改变theta会改变方位角并改变phi合作.
自从我用三维微积分来记住用于球坐标的所有名称已经有一段时间了,无论如何,即使这样,角度也从未被称为"方位角"或"合成",而只是简单地用希腊字母.
我猜的最接近的是维基百科关于球面坐标的图表:
这些是相同的,theta并phi在文档中提到?我知道如果不是作者之间的不一致,那么数学符号就不算什么.
像往常一样,最容易解决这个问题的方法(通常比查看代码更容易,IMO:如果你想要,看到XRotate和ZRotate链接)是实验.
正如您在此处所看到的,theta围绕Z轴phi旋转并围绕X轴旋转,因此phi=90对应于直视俯视图...即与上面显示的符号相反.
复制代码:
x<-seq(0,2,len=11)
y<-seq(0,2,len=11)
z<-outer(x,y,function(x,y){
(x>1&y<=1)*2+(x<=1&y>1)*1+(x>1&y>1)*(1-(x-1)*(y-1))})
colors<-c(rep(rep(c("red","blue"),c(5,5)),5),
rep(rep(c("yellow","green"),c(5,5)),5))
par(mfrow=c(2,3))
persp(x,y,z,theta=0,phi=30,col=colors,main="Theta: 0")
persp(x,y,z,theta=60,phi=30,col=colors,main="Theta: 60")
persp(x,y,z,theta=120,phi=30,col=colors,main="Theta: 120")
persp(x,y,z,phi=0,col=colors,main="Phi: 0")
persp(x,y,z,phi=30,col=colors,main="Phi: 30")
persp(x,y,z,phi=60,col=colors,main="Phi: 60")
Run Code Online (Sandbox Code Playgroud)