Как изменить угол обзора из графика 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)