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

在Eyeshot中合并简单多边形并绘制结果轮廓的最简方法?

在Eyeshot中合并多边形并绘制轮廓的最简方法

嘿,我来给你说个在Eyeshot里合并多边形并导出轮廓的省心路子——直接用内置的Region类就行,它专门处理多边形的布尔运算,省得你自己写一堆复杂的相交、裁剪逻辑!

核心步骤拆解:

  • 第一步:把多边形转成Region对象
    Eyeshot的Region类天生支持合并、交集这类布尔操作,先把你要处理的每一个Polygon都转换成Region实例。
  • 第二步:执行合并操作
    初始化一个空的Region,然后遍历所有转换后的Region,依次调用Union()方法完成合并。
  • 第三步:导出合并后的轮廓
    合并完成的Region可以直接转换成轮廓线,之后把这个轮廓加到你的设计控件里就行。

具体代码示例(C#):

// 假设你已经准备好要合并的多边形集合
List<Polygon> targetPolygons = new List<Polygon>();
// 这里可以添加你的多边形实例,比如从场景中获取或者手动创建

// 初始化空的合并Region
Region mergedRegion = new Region();

foreach (var polygon in targetPolygons)
{
    // 确保多边形是闭合的(如果原本不闭合的话)
    if (!polygon.IsClosed)
    {
        polygon.IsClosed = true;
    }
    // 转成临时Region并执行合并
    Region tempRegion = new Region(polygon);
    mergedRegion = mergedRegion.Union(tempRegion);
}

// 处理合并后可能存在的多个分离区域,提取所有轮廓
Polyline[] allOutlines = mergedRegion.GetContours();
foreach (var outline in allOutlines)
{
    // 自定义轮廓样式(可选)
    outline.Color = Color.DarkBlue;
    outline.LineWeight = 2; // 设置线宽
    // 添加到Eyeshot设计控件
    design1.Entities.Add(outline);
}

// 刷新视图
design1.Invalidate();

额外注意点:

  • 如果你的多边形包含孔洞,Region会自动识别并处理,导出的轮廓也会包含内轮廓线;
  • 用GetContours()而不是单一的ToPolyline(),能避免漏掉合并后分离区域的轮廓。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:36:36