rgl 材料以在 3D 绘图中保持颜色不变

rgl materials to keep colors constant in a 3D plot

matlibhttps://github.com/friendly/matlib 中,函数 plotEqn3d() 用于绘制与 $A x = 形式的 3 个变量的线性方程组对应的平面b$,每个平面使用不同的颜色。

但是,使用的光照会使平面根据绘图的方向改变颜色,这在这个应用程序中令人困惑,我不知道如何改变它。

这是一个例子:

library(matlib)
library(rgl)

A <- matrix(scan(), byrow=TRUE, nrow=3)
2 -2 0
1 -1 1
4 4 -4


b <- 1:3

plotEqn3d(A, b)

为了展示效果,我做了一个movie3d(),绕Z轴旋转

movie3d(spin3d(rpm=15), duration=4, movie="plotEqn", dir=".")

在电影中很清楚哪个平面是哪个平面,但在静止图像中则不然,这取决于方向。我需要哪些 par3d() 或其他设置来防止平面颜色发生变化?

第二个问题:该函数使用rgl::plot3d()设置基本图框。是否可以关闭轴上的刻度线和刻度值?如果是,怎么做?

好像最好不要用plotEqn3d(),而是获取参数,用rgl()的函数。您可以通过lit = F(详细信息;?rgl.material)移除几何效果。

open3d()
plot3d(0,0,0, xlim = c(-2,2), ylim = c(-2,2), zlim = c(-3,3), type = "n", axes = F,
       xlab = "", ylab = "", zlab = "")      # a draft
planes3d(A[,1], A[,2], A[,3], -b, col = 2:(nrow(A) + 1), alpha = 1, lit = F)
spheres3d(solve(A, b), radius = 0.2)
box3d()
 # axes3d(c("x", "y", "z"))  # fixed tick marks and values

play3d(spin3d(rpm=15), duration = 4)