rgl 材料以在 3D 绘图中保持颜色不变
rgl materials to keep colors constant in a 3D plot
在 matlib
包 https://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)
在 matlib
包 https://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)