【发布时间】:2017-03-20 15:02:44
【问题描述】:
我有一个生活在 3d 空间中的三角形,我想以一种有效的方式只绘制三角形的边缘,因为我会为大量的三角形重复它。
我可以使用包 rgl 将其绘制为彩色表面:
rgl.open()
vertices = c(
0,0,0,1,
1,1,0,1,
0,0,1,1)
col = "blue"
shade3d( tmesh3d(vertices,indices) , col=col)
bg3d(color = "white")
但我想要的只是连接点的 3 条线。
我尝试的是:
vertices = c(
0,0,0,
1,1,0,
0,0,1)
rgl.lines(x=c(vertices[1],vertices[4]),y=c(vertices[2],vertices[5]),z=c(vertices[3],vertices[6]),col="black")
rgl.lines(x=c(vertices[4],vertices[7]),y=c(vertices[5],vertices[8]),z=c(vertices[6],vertices[9]),col="black")
rgl.lines(x=c(vertices[7],vertices[1]),y=c(vertices[8],vertices[2]),z=c(vertices[9],vertices[3]),col="black")
bg3d(color = "white")
但是,这种方法比第一种方法慢得多(在真实网格上尝试大约 10 倍)。 我想知道,有没有办法用 shade3d 将三角形绘制成只有边缘的透明?
【问题讨论】:
-
您的示例不起作用 - 没有声明或定义
indices。所以我使用了来自rgl文档的示例。 -
对我的回答有任何反馈吗?