使用展平功能绘制圆

时间:2019-05-28 12:12:10

标签: vb.net winforms drawing2d

我目前正在使用Input中的X点实现圆的可视化。

我不知道这是否是最好的方法(不要犹豫告诉我任何其他可能性),但是要意识到,我正在创建具有这些不同点的路径,然后使用“ Flatten”功能平滑曲线:

For Each Point As Point3D In ptsLocal
            graphic_points(index).X = (panel.Width / 2) + (Point.z * facteur)
            graphic_points(index).Y = (panel.Width / 2) - (Point.y * facteur)
            Draw_ringPoint(graphic, Brushes.Gray, graphic_points(index).X, graphic_points(index).Y, 4, IdsPts(index))
            index += 1
        Next
        graphic_points(index).X = graphic_points(0).X
        graphic_points(index).Y = graphic_points(0).Y
        Dim myPath As New GraphicsPath

        'Dim translateMatrix As New Matrix
        'translateMatrix.Translate(0, 10)

        myPath.AddCurve(graphic_points)
        'graphic.DrawPath(New Pen(Color.Cyan, 2), myPath)
        myPath.Flatten()
graphic.DrawPath(New Pen(Color.BlueViolet, 2), myPath)

如您所见,我在最后添加点“ 0”以关闭曲线,这是我的结果:

enter image description here

如您所见,除了最后一点和第一个点之间的连接之外,结果还不错。

我如何使这种连接顺畅?还是有其他解决方案可以实现这种可视化?

编辑:

使用DrawClosedCurve方法后,结果看起来更好,但是如您所见,最后一个连接仍然有问题(使用最后一个连接点):

enter image description here

并且没有最后一个连接点:

enter image description here

0 个答案:

没有答案