Rで地球を回す
この記事は R Advent Calendar 2020の5日目の記事です。
まずはコードを載せる
library(rgl)
world <- read.table("./world_50m.txt", header = F) #edge of world
R <- 6371*10^3
x_one <- R*sin((world$V2-90)*(pi/180))*cos((world$V1)*(pi/180))
y_one <- R*sin((world$V2-90)*(pi/180))*sin((world$V1)*(pi/180))
z_one <- R*cos((world$V2-90)*(pi/180))
plot3d(x_one, y_one, z_one, xlim = c(-R,R), ylim = c(-R,R), zlim = c(-R,R), xlab = ""
, ylab = "", zlab = "", col = "black", size = "1")+
title3d(main = "globe")+
spheres3d(0,0,0,radius = R, color = "ivory")
実行結果
world_50m.txtは http://www.gnuplotting.org/tag/4-6/ から拝借したデータです。
本コードではそれぞれの角度のデータから直交座標に変換してプロットしている。
Rは一応地球の半径にしている。
あとはrglと3dplotで3次元プロットすれば手元で動かせる地球儀が完成する。