使用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
相关产品推荐
相关产品推荐

