Как изменить угол обзора из графика persp3d в R

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

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', похоже, не работают в этой команде, независимо от того, какое значение я выберу, у меня все равно будет одно конкретное представление, подобное этому.

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

1 ответ

Решение

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)
Другие вопросы по тегам