簡體   English   中英

如何在R中繪制球面坐標

[英]how to plot spherical coordinates in R

如何在R中繪制球坐標(r,theta和phi)?

是否可以使用persp()函數?

我有一個積分和一個網格。

只要你知道你的數學 ,這是一個相當微不足道的轉變:

spher_to_cart <- function(r, theta, phi) list(x=r*cos(phi)*sin(theta), 
                                              y=r*sin(theta)*sin(phi), 
                                              z=r*cos(theta))

#An example dataset
data <- data.frame(r=1:10, 
                   theta = seq(0,2*pi,length=10), 
                   phi = seq(2*pi, 0,length=10))
spher_to_cart(data$r, data$theta, data$phi)
$x
 [1]  0.000000e+00  9.848078e-01  5.130302e-01 -1.732051e+00 -1.606969e+00  1.928363e+00  3.031089e+00 -1.368081e+00 -4.431635e+00 -2.449294e-15

$y
 [1]  0.0000000 -0.8263518 -2.9095389 -3.0000000 -0.5848889 -0.7018667 -5.2500000 -7.7587705 -3.7185832  0.0000000

$z
 [1]  1.0000000  1.5320889  0.5209445 -2.0000000 -4.6984631 -5.6381557 -3.5000000  1.3891854  6.8944000 10.0000000

注意以弧度而不是度數使用theta和phi的值。
然后你可以使用plot3d繪制包rgl ,例如:

s <- spher_to_cart(data$r, data$theta, data$phi)
library(rgl)
plot3d(s$x,s$y,s$z)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM