在matlib
包https://github.com/friendly/matlib中,函数plotEqn3d()
用于绘制对应于3个变量形式的线性方程组的平面$ A x = 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()
来设置基本绘图框。是否可以关闭轴上的刻度线和刻度值?如果是这样,怎么样?
答案 0 :(得分:1)
最好不要使用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)