Нарисуйте круг с помощью функции Flatten - PullRequest
0 голосов
/ 28 мая 2019

Я в настоящее время внедряю визуализацию окружности, используя точки X во входных данных.

Я не знаю, является ли это лучшим способом (не стесняйтесь рассказать мне о любой другой возможности), но осознаю это,Я создаю путь с этими точками, а затем использую функцию «Сгладить», чтобы сгладить кривую:

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

...