我试图绘制由方程y = x确定的平面,该方程在0和2之间叠加在由z = 1/2 * x * y描述的3D表面上。
我"黑客攻击"来自another question的代码可以获得表面上最低限度的表示(不会想到重新开始),但我不知道如何叠加2D平面。
这是一个想法:
这就是我到目前为止所得到的:
使用借用代码:
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")
请注意,主要问题(或第一张图表上草图的差异)是我无法显示绿色三角形。相反,我得到一个蓝色的斜面。