Как изменить угол обзора из графика persp3d в R - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть следующая функция для создания радужной сферы,

library(rgl)
f = function(s, t){
    cbind(cos(s) * cos(t),
    sin(s) * cos(t), 
    sin(t))
}

persp3d(f, slim = c(0, pi), tlim = c(0, 2*pi), col = rainbow,theta = 20,phi=60)

, однако, 'theta' и 'phi', похоже, не работают в этой команде, независимо от того, какое значение я выберу, я все равно получаюодин конкретный вид, подобный этому.

enter image description here

Может кто-нибудь сказать мне, как решить эту проблему?Я хочу, чтобы этот график имел разные взгляды, так как я меняю значения тэты и фи.

1 Ответ

0 голосов
/ 07 декабря 2018

theta и phi не являются аргументами для persp3d(), но вы можете вызвать отдельную функцию view3d() для их установки.Если вы не хотите видеть первый экран, за которым следует перемещение, используйте par3d(skipRedraw = TRUE) перед рисованием и впоследствии восстановите старое значение.Ваш пример будет

library(rgl)
f = function(s, t){
    cbind(cos(s) * cos(t),
    sin(s) * cos(t), 
    sin(t))
}

save <- par3d(skipRedraw = TRUE)
persp3d(f, slim = c(0, pi), tlim = c(0, 2*pi), col = rainbow)
view3d(theta = 20, phi = 60)
par3d(save)
...