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

时间:2015-12-09 18:50:04

标签: r computational-geometry rgl

matlibhttps://github.com/friendly/matlib/中,我有一个函数vectors3d()来绘制几何矢量图。

以下代码给出了一个显示单位向量“J”的示例图 以及它在X,Y,Z轴上的一些投影。在对segments3d的调用中,每个参数都是一个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)))

vectors 3D demo

我想在此添加直角线,如|_,以显示我使用segments3d绘制的矢量对是正交的。我在下图中手工绘制了这些。但我不知道如何计算这种形式的给定矢量对所需的小线段,比如v1v2。我愿意假设|_段的每个长度都是一个很小的数字,如0.05。 vectors 3D demo2

编辑: 问题简化为以下内容:给定三个点p1p2p3,找到标记为p21p23和{{1}的点在下图中。前两个是沿两点之间的线找到一个点的简单例子,但是我很难找到第三个点p123的坐标,即距离{{1}的点的位置从p123开始沿着与d行平行的线。

vector3d-diagram

在R中,到目前为止我所拥有的是

p2->p3

这给了我下面的图表。有人可以帮我完成吗?

enter image description here

0 个答案:

没有答案