在R中绘制3D表面和平面

时间:2016-01-28 03:42:22

标签: r plot 3d

我试图绘制由方程y = x确定的平面,该方程在0和2之间叠加在由z = 1/2 * x * y描述的3D表面上。

我"黑客攻击"来自another question的代码可以获得表面上最低限度的表示(不会想到重新开始),但我不知道如何叠加2D平面。

这是一个想法:

enter image description here

这就是我到目前为止所得到的:

enter image description here

使用借用代码:

my_surface <- function(f, n=10, ...) { 
  ranges <- rgl:::.getRanges()
  x <- seq(ranges$xlim[1], ranges$xlim[2], length=n)
  y <- seq(ranges$ylim[1], ranges$ylim[2], length=n)
  z <- outer(x,y,f)
  surface3d(x, y, z, ...)
}
library(rgl)

f <- function(x, y) 1/2 * x * y
g <- function(x, y) x = y

x <- seq(0, 2, by=0.001)
y <- seq(0,2, by=0.001)
z <- 1/2 * x * y

plot3d(x, y, z, xlab="X", ylab="y", zlab="z", site=5, type = "n")

my_surface(f, alpha=.5, col="red")


my_second_surface <- function(f, n=10, ...) { 
  ranges <- rgl:::.getRanges()
  x <- seq(ranges$xlim[1], ranges$xlim[2], length=n)
  y <- seq(ranges$ylim[1], ranges$ylim[2], length=n)
  z <- outer(x,y,g)
  surface3d(x, y, z, ...)
}
my_second_surface(g, alpha=.5, col="blue")

请注意,主要问题(或第一张图表上草图的差异)是我无法显示绿色三角形。相反,我得到一个蓝色的斜面。

0 个答案:

没有答案