SetPixel и GetPixel. Одна точка закрашивает другую, но не должна - Visual Basic .NET
Формулировка задачи:
Здравствуйте. Задача: нарисовать прямую заданной толщины с полоской в 1 пиксель по середине. Как бы не проблема, но накидав код, обнаружил, что GetPixel не срабатывает. Прошу найти ошибку.
Результат: одна точка закрашивает другую
Листинг программы
- Sub установить_точку(ByVal x As Integer, ByVal y As Integer, ByVal bmp As Bitmap)
- Dim a As Integer = 2
- For i = -a To a
- For j = -a To a
- If x + i < PictureBox1.Width And x + i > 0 And y + j < PictureBox1.Height And y + j > 0 Then
- If Not bmp.GetPixel(x + i, y + j) = Color.Red and Not bmp.GetPixel(x + i, y + j) = Color.Black Then
- If i = 0 And j = 0 Then
- bmp.SetPixel(x + i, y + j, Color.Red)
- Else
- bmp.SetPixel(x + i, y + j, Color.Black)
- End If
- End If
- End If
- Next
- Next
- End Sub
Листинг программы
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- bm = New Bitmap(PictureBox1.Width, PictureBox1.Height)
- установить_точку(50, 50, bm)
- установить_точку(52, 52, bm)
- PictureBox1.Image = bm
- End Sub
Решение задачи: «SetPixel и GetPixel. Одна точка закрашивает другую, но не должна»
textual
Листинг программы
- Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
- Dim blackPen As New Pen(Color.FromArgb(255, 0, 0, 0), 1)
- Dim greenPen As New Pen(Color.FromArgb(255, 0, 255, 0), 10)
- greenPen.Alignment = PenAlignment.Center
- ' Draw the line with the wide green pen.
- e.Graphics.DrawLine(greenPen, 10, 100, 100, 50)
- ' Draw the line with the thin black pen.
- e.Graphics.DrawLine(blackPen, 10, 100, 100, 50)
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д