rgl矢量图:显示正交矢量的直角

rgl矢量图:显示正交矢量的直角,r,computational-geometry,rgl,R,Computational Geometry,Rgl,在matlib包中,我有一个函数,vectors3d()来绘制几何矢量图 下面的代码给出了一个显示单位向量“J”的示例图 以及它在X,Y,Z轴上的一些投影。在对段3d的调用中,每个参数都是一个2 x 3的矩阵,给出开始/结束坐标 if (!require(matlib)) devtools::install_github(friendly/matlib) library(matlib) library(rgl) vec <- rbind(diag(3), c(1,1,1)) rownam

matlib
包中,我有一个函数,
vectors3d()
来绘制几何矢量图

下面的代码给出了一个显示单位向量“J”的示例图 以及它在X,Y,Z轴上的一些投影。在对
段3d
的调用中,每个参数都是一个2 x 3的矩阵,给出开始/结束坐标

if (!require(matlib)) devtools::install_github(friendly/matlib)
library(matlib)
library(rgl)

vec <- rbind(diag(3), c(1,1,1))
rownames(vec) <- c("X", "Y", "Z", "J")
open3d()
vectors3d(vec, col=c(rep("black",3), "red"), lwd=2)
# draw the XZ plane, whose equation is Z=0
planes3d(0, 0, 1, 0, col="gray", alpha=0.2)
# show projections of the unit vector J
segments3d(v1 <- rbind( c(1,1,1), c(1, 1, 0)))
segments3d(v2 <- rbind( c(0,0,0), c(1, 1, 0)))
segments3d(v3 <- rbind( c(1,0,0), c(1, 1, 0)))
segments3d(v4 <- rbind( c(0,1,0), c(1, 1, 0)))
这给了我下面的图表。有人能帮我完成吗


我在Math Stackexchange上收到了这个问题的可接受答案,
#' Find position of a point along a line from x1 to x2
point_on_line <- function(x1, x2, d, absolute=TRUE) {
    v <- x2 - x1
    if (!absolute) v <- v / len(v)
    x1 + d * v
}

p1 <- c(0,0,0)
p2 <- c(1,1,0)
p3 <- c(1,1,1)

(p21 <- point_on_line(p2, p1, .10))
(p23 <- point_on_line(p2, p3, .10))
points3d(rbind(p21, p23), size=10, col="red")