Рисование мышкой. При нажатии левой кнопки мыши и ее перемещении рисуется кривая - Visual Basic .NET
Формулировка задачи:
У меня vb 2010 надо написать программу при нажатии левой кнопки мышки и ее перемещении рисуется кривая. Что-то вроде карандаша в фотошопе. Подскажите как это реализовать или приведите примеры реализации.
Решение задачи: «Рисование мышкой. При нажатии левой кнопки мыши и ее перемещении рисуется кривая»
textual
Листинг программы
Public Class Form1 Dim Лист As Bitmap Dim Гр, Граф As Graphics 'Объекты класса Graphics над Листом и над формой Dim Кисть As New SolidBrush(Color.Black) 'Цвет карандаша поначалу черный Dim Толщина As Integer = 3 Dim Перо As New Pen(Color.Black, 3) 'Цвет карандаша поначалу черный, толщина=3 'Координаты мыши при предыдущем (перед текущим) наступлении события MouseMove: Dim X_предыдущее As Long Dim Y_предыдущее As Long Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Лист = New Bitmap(Me.Width, Me.Height) Гр = Graphics.FromImage(Лист) Граф = Me.CreateGraphics Перо.StartCap = Drawing2D.LineCap.Round 'Иначе линия получается не гладкая Перо.EndCap = Drawing2D.LineCap.Round End Sub Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles MyBase.MouseMove If e.Button = MouseButtons.Left Then 'Рисуем отрезок прямой от текущего положения мыши до предыдущего: Гр.DrawLine(Перо, e.X, e.Y, X_предыдущее, Y_предыдущее) Граф.DrawLine(Перо, e.X, e.Y, X_предыдущее, Y_предыдущее) 'Запоминаем текущее положение мыши для будущего срабатывания MouseMove, 'когда оно будет уже предыдущим: X_предыдущее = e.X Y_предыдущее = e.Y End If End Sub Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles MyBase.MouseDown 'В начальный момент рисования, когда мы только нажимаем кнопку мыши, 'предыдущее и текущее положения мыши совпадают: X_предыдущее = e.X Y_предыдущее = e.Y End Sub Private Sub Form1_Resize(sender As Object, e As EventArgs) Handles Me.Resize Лист = New Bitmap(Me.Width, Me.Height) Гр = Graphics.FromImage(Лист) Граф = Me.CreateGraphics End Sub End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д