用R绘制点和超平面

时间:2014-03-27 07:16:38

标签: r 3d plot

我已经阅读了有关我主题的各种帖子,但无法找到解决方案。

我想绘制点

enter image description here

点A和C应用红色绘制,点B用蓝色绘制。

此外,我想绘制超平面H:

enter image description here

到目前为止,我有以下代码(当然)没有产生正确的输出:

rm(list=ls(all=TRUE))
require("plot3D")
require("rgl")
require("misc3d")


x3<-c(1,0,1)
y3<-c(- sqrt(2),0,sqrt(2))
z3<-c(1,1,1)

color<-c("red","blue","red")

plot3d(x3,y3,z3, col="red")
surface3d(x=0.5,y=NULL,z=NULL,normal_x=1,normal_y=0,normal_z=0)A(1/-sqrt(2)/1)
B(0/0/1)
C(1/sqrt(2)/1)

如果您有任何提示和建议,我们非常欢迎您!

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你想绘制3点和x = 0.5的平面。如果您愿意交换x和z的正式定义(并使用标签对其进行更正),则可以相对容易地执行此操作。

library("rgl")

x3   <-c(1,0,1)
y3   <-c(- sqrt(2),0,sqrt(2))
z3   <-c(1,1,1)
color<-c("red","blue","red")
plot3d(z3,y3,x3, col=color, size=3, type="s",
       xlim=c(-2,2), ylim=c(-2,2),zlim=c(-2,2),
       xlab="Z",ylab="Y",zlab="X")
grid <- -2:2
surface3d(x=grid,y=grid,
          z=matrix(.5,ncol=length(grid),nrow=length(grid)),
          col="grey", alpha=.2)
lines3d(x=grid,y=0,z=0, col="grey")
lines3d(x=0,y=grid,z=0, col="grey")
lines3d(x=0,y=0,z=grid, col="grey")