我正在使用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")