gpt4 book ai didi

r - 在 3D 中绘制两点之间的线

转载 作者:行者123 更新时间:2023-12-04 02:02:53 24 4
gpt4 key购买 nike

我正在编写一个回归算法,试图“捕获”框内的点。该算法试图使框尽可能小,因此通常框的边/角经过点,这决定了框的大小。

问题:我需要 R 中框的图形输出。在 2D 中很容易用 segments() 绘制框,在两点之间画一条线。所以,我可以用 4 段画一个框:

plot(x,y,type="p")
segments(x1,y1,x2,y2)

然后我尝试了 scatterplot3dplot3d用于 3D 绘图的包。在 3D 中 segments()命令不起作用,因为没有额外的 z 分量。我很惊讶(对我而言)显然 segments() 在 3D 中没有足够的替代品

在三个维度上绘制时,是否有一种简单的方法可以在两点之间绘制框/线?

最佳答案

scatterplot3d函数返回允许您将 (x,y,z) 点投影到相关平面的信息,如下所示:

library(scatterplot3d)
x <- c(1,4,3,6,2,5)
y <- c(2,2,4,3,5,9)
z <- c(1,3,5,9,2,2)
s <- scatterplot3d(x,y,z)

## now draw a line between points 2 and 3
p2 <- s$xyz.convert(x[2],y[2],z[2])
p3 <- s$xyz.convert(x[3],y[3],z[3])
segments(p2$x,p2$y,p3$x,p3$y,lwd=2,col=2)
rgl package 是另一种方法,也许更容易(请注意 segments3d 从向量中成对获取点)
plot3d(x,y,z)
segments3d(x[2:3],y[2:3],z[2:3],col=2,lwd=2)

关于r - 在 3D 中绘制两点之间的线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13495502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com