You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R的deldir生成含Delaunay三角形顶点坐标的数据框?

在R中使用deldir生成含Delaunay三角形顶点坐标的数据框

deldir包默认仅返回顶点索引,但可以通过索引匹配原始点数据的方式快速生成目标数据框,具体步骤如下:

1. 安装并加载包

如果尚未安装deldir,先执行安装命令:

install.packages("deldir")
library(deldir)

2. 准备点数据

这里用随机生成的点集作为示例,你可以替换成自己的数据集:

# 生成10个随机点的坐标数据框
pts <- data.frame(
  x = runif(10, min = 0, max = 10),
  y = runif(10, min = 0, max = 10)
)

3. 执行Delaunay三角剖分

调用deldir()函数计算剖分结果,返回的对象中包含三角形的顶点索引:

# 计算Delaunay三角剖分
dt_result <- deldir(pts$x, pts$y)

# 提取三角形的顶点索引数据框
tri_indices <- dt_result$triangulations

tri_indices中的ind1、ind2、ind3列分别对应每个三角形三个顶点在原始pts数据框中的行号。

4. 匹配索引与坐标

通过索引从原始点数据中提取对应坐标,添加到三角形数据框中:

# 匹配三个顶点的x、y坐标
tri_indices$x1 <- pts$x[tri_indices$ind1]
tri_indices$y1 <- pts$y[tri_indices$ind1]
tri_indices$x2 <- pts$x[tri_indices$ind2]
tri_indices$y2 <- pts$y[tri_indices$ind2]
tri_indices$x3 <- pts$x[tri_indices$ind3]
tri_indices$y3 <- pts$y[tri_indices$ind3]

5. 整理最终数据框

保留需要的坐标列,移除索引列:

# 生成仅含坐标的目标数据框
final_tri_df <- tri_indices[, c("x1", "y1", "x2", "y2", "x3", "y3")]

# 查看结果
head(final_tri_df)

这样得到的final_tri_df每行对应一个Delaunay三角形,包含三个顶点的完整坐标信息。

内容的提问来源于stack exchange,提问作者Eric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 00:45:32