我想使用C#绘制一条不同厚度的连续线/曲线。如果我将笔的宽度设置为固定,则厚度不会变化。如何在绘制线条时改变线条的厚度?任何帮助表示赞赏。
答案 0 :(得分:2)
一般方法:将线条分割成线段/点,并使用不同的笔进行多次绘制调用(如其他帖子中所述)。
现在对于曲线 - 如果您不想重新实现它们的算法,您可能希望使用GraphicsPath
将任意路径转换为线段(具有足够的分辨率)。
GraphicsPath
实例Flatten
让GraphicsPath
执行魔术(=仅转换为线路)PathPoints
以获取相应线段的端点答案 1 :(得分:1)
如果逐点绘制线条,则只能改变线条的粗细,然后改变点的粗细。
要了解如何逐点绘制线条,请在没有方便的情况下查找线条绘制算法。绘制直线的一个例子是Bresenham的算法。您可以在http://en.wikipedia.org/wiki/Bresenham's_line_algorithm找到更多相关信息。
然后在绘制点时,可以选择点的粗细。因此,您不是只绘制一个像素,而是绘制一个半径为r的圆,其中r是您在该行中该位置所需线条的粗细。