图形中尖角上的无限角度

时间:2017-06-21 18:40:12

标签: vb.net graphics

我正在处理正在处理的应用程序中的一些绘图时出现问题。每当我用一条宽1英寸的线绘制一个尖角时,我的线就会越过它应该结束的点。

enter image description here

我找不到任何帮助。图纸是图形路径,主要是多边形和馅饼。我已经仔细检查了我的数学,这是正确的。我的代码如下。

 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

    Dim g As Graphics = CreateGraphics()
    g.SmoothingMode = SmoothingMode.AntiAlias
    Dim pens As Pen = New Pen(Color.Black, 1)
    Dim pen As Pen = New Pen(Color.Red, 1)

    g.DrawLine(pens, 350, 0, 350, 800)
    g.DrawPie(pen, 100, 0, 500, 500, 0, 90)
    g.DrawPie(pen, 100, 300, 500, 500, 0, 10)


    pen = New Pen(Color.Red, 2)

    g.DrawLine(pens, 700, 0, 700, 800)

    g.DrawPie(pen, 450, 0, 500, 500, 0, 90)
    g.DrawPie(pen, 450, 300, 500, 500, 0, 10)


End Sub

1 个答案:

答案 0 :(得分:1)

尝试使用笔的LineJoin属性,看看是否对您有帮助。您还可以尝试使用笔的AlignmentEndCapMitreLimit属性。

例如

pen.LineJoin = LineJoin.Bevel 

似乎剪掉了那个角落: enter image description here

正如其他评论员所说,您需要在DisposeGraphics个对象上致电Pen。对于Graphics对象,最好在表单的OnPaint覆盖中进行所有绘制。 Using语句,因此会自动处理。