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

使用C#在两条直线间绘制连接线或路径的技术求助

优化后的U型路径绘制方案

看起来你是想绘制连接两条水平直线左端的U型路径对吧?我看你已经写了核心的路径构建代码,只是最后绘制的部分没写完,这里帮你完善并优化一下:

完整可运行代码

// 初始化画笔,设置黑色、2px宽度
Pen usedPen = new Pen(Color.Black, 2);
// 可选:设置圆角拐角,让线条衔接更平滑
usedPen.LineJoin = LineJoin.Round;

// 创建图形路径对象
GraphicsPath path = new GraphicsPath();
path.StartFigure();

// 按连续顺序添加线条,让路径衔接更自然
// 顶部水平线:从右侧(518,10)画到左侧(433,10)
path.AddLine(new Point(518, 10), new Point(433, 10));
// 左侧竖直线:从顶部(433,10)画到底部(433,40)
path.AddLine(new Point(433, 10), new Point(433, 40));
// 底部水平线:从左侧(433,40)画到右侧(518,40)
path.AddLine(new Point(433, 40), new Point(518, 40));

// 可选:如果需要闭合路径(把右端的两个点也连起来变成矩形),取消下面注释
// path.CloseFigure();

// 完成路径绘制
e.Graphics.DrawPath(usedPen, path);

// 释放资源,避免内存泄漏(重要!)
usedPen.Dispose();
path.Dispose();

关键说明

  • 调整了线条添加顺序:让路径是连续的折线,这样设置LineJoin时拐角的样式会正确生效
  • 补全了DrawPath的完整调用:这是你代码里缺失的核心绘制步骤
  • 增加了资源释放:Pen和GraphicsPath都实现了IDisposable接口,用完必须释放以避免内存泄漏
  • 可选圆角拐角:取消注释usedPen.LineJoin = LineJoin.Round可以让左侧的直角变成圆角,视觉效果更柔和
  • 可选闭合路径:如果需要把两条水平线的右端也连接起来形成完整矩形,取消path.CloseFigure()的注释即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:28:28