Drawlines правильно или нет? - PullRequest
       9

Drawlines правильно или нет?

0 голосов
/ 04 декабря 2018

Функция Drawlines не работает правильно в следующих кодах.но он работает правильно, когда те же данные нарисованы с помощью линии отрисовки.Drawlines рисует линии, которые не являются реальными.Каковы ваши комментарии?

   Dim uImage As Bitmap = New Bitmap(PictureBox1.Size.Width, PictureBox1.Size.Height, 4, Imaging.PixelFormat.Format32bppPArgb, 0)

   Dim Grafik As Graphics = Graphics.FromImage(uImage)

   Grafik.Clear(Color.Black)

   Dim Offset As Integer = 0
   Dim Gain As Integer = 1
   Dim Freq As Integer = 1
   Dim N As Integer = PictureBox1.Size.Width

   Dim D(N - 1) as PointF

    ' Create Data
    '
    For i As Integer = 0 To N - 1
        D(i).X = i
        D(i).Y = Offset + Gain * Math.Cos(i * Freq * Math.PI / 180.0)
    Next

   ' Scale for drawing
   '
   Dim sx As Double = PictureBox1.Size.Width / (N - 1)
   Dim sy As Double = PictureBox1.Size.Height * 0.5

   ' increase gain
   '
   sy=sy*32000

   ' Data to Pixel
   '
   For i As Integer = 0 To N - 1
       D(i).X = D(i).X * sx
       D(i).Y = PictureBox1.Size.Height * 0.5 - D(i).Y * sy
   Next

    ' DrawLines is not correct
    '
    Grafik.DrawLines(New Pen(Color.Blue), D)

   ' DrawLine is correct
   '
    For i As Integer = 1 To N - 1
        Grafik.DrawLine(New Pen(Color.Red), D(i - 1), D(i))
    Next

    PictureBox1.Image = Nothing
    PictureBox1.Image = uImage

    Grafik.Dispose()

Я хотел бы предоставить дополнительную информацию.Ошибки могут возникать, когда Picturebox достигает определенного размера.Размеры для этого примера 720;530 пикселей.получается следующее изображение:

Image showing vertical lines

Синие линии не должны появляться на изображении.Должен перекрываться красными линиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...