Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
7 / 15 / 0
Регистрация: 08.03.2011
Сообщений: 100

Рисование на PictureBox мышкой

09.05.2011, 19:48. Показов 6750. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Товарищи программисты такая задача для умных.рисование на PictureBox с помощью мышки...
То есть что требуется....есть пикчер бокс....во время выполнения мы мышкой ставим на нем две точки(эти точки будут вершины квадрата, которые находятся по диагонали друг к другу) и программа рисует квадрат...либо вариант с окружностью....одна точка центр окружности...другая- точка, лежащая на окружности...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.05.2011, 19:48
Ответы с готовыми решениями:

Перемещение большой картинки мышкой внутри PictureBox
Всем привет. Есть Панель на которой расположен PictureBox, в него загружается картинка большого размера (например 3000*1400). У панели...

Рисование мышкой. При нажатии левой кнопки мыши и ее перемещении рисуется кривая
У меня vb 2010 надо написать программу при нажатии левой кнопки мышки и ее перемещении рисуется кривая. Что-то вроде карандаша в фотошопе....

Рисование текста в PictureBox
Работаю в VS 2013. В VB 6.0 это осуществлялось так Private Sub Command1_Click() x = 127 Picture1.Print "Значение x=";x...

3
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
09.05.2011, 20:46
Первый велосипед, что пришел в голову.
Даю пищу для размышлений, ведь весь секрет в массиве точек
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    Dim Pt As Point
    Dim P As New Collection
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Pts(P.Count - 1) As Point
        For I As Integer = 0 To Pts.Length - 1
            Pts(I) = P(I + 1)
        Next
        Dim g As Graphics = Me.CreateGraphics
        g.DrawCurve(Pens.Blue, Pts)
    End Sub
 
    Private Sub Form1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
        Pt = e.Location
        P.Add(Pt)
    End Sub
Добавлено через 14 минут
Блин, не то... Недопонял и насвистел
0
7 / 15 / 0
Регистрация: 08.03.2011
Сообщений: 100
09.05.2011, 22:07  [ТС]
Да что то не совсем тто(((((еще варианты друзья..
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
09.05.2011, 22:22
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Barmaglo, год назад подобной фигней маялся - щелкаешь по форме сколько надо точек и все координаты щелчка заносишь в список или массив. Потом по массиву выполняешь отрисовку на форме нужной фигуры.
поиграйся с этим кодом, год назад делал
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Math
 
Public Class Form1
 
    Dim line = False
    Dim colors() As String = New String() {"Черный", "Красный", "Зеленый", "Синий", "Желтый"}
    Dim figura As Object
    Dim queue_points_x As New Queue()
    Dim queue_points_y As New Queue()
        Dim Regim As Integer
 
    Private Sub Mouse_Click(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles Me.Click
 
        queue_points_x.Enqueue(e.X)
        queue_points_y.Enqueue(e.Y)
 
        If queue_points_x.Count > 1 And queue_points_y.Count > 1 Then
            Drawing()
        End If
    End Sub
 
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ListBox1.Items.AddRange(colors)
    End Sub
 
    Private Sub Drawing()
 
        Dim x1, x2, y1, y2, x3, x4, y3, y4 As Integer
        Dim gr As Graphics = Me.CreateGraphics()
        If Regim = 2 And queue_points_x.Count > 3 And queue_points_y.Count > 3 Then
            x1 = queue_points_x.Dequeue()
 
            y1 = queue_points_y.Dequeue()
            x2 = queue_points_x.Dequeue()
            y2 = queue_points_y.Dequeue()
            x3 = queue_points_x.Dequeue()
            y3 = queue_points_y.Dequeue()
            x4 = queue_points_x.Dequeue()
            y4 = queue_points_y.Dequeue()
 
 
            gr.DrawPolygon(Pens.Beige, New Point() {New Point(x1, y1), New Point(x2, y2), New Point(x3, y3), New Point(x4, y4)})
        ElseIf Regim = 1 Then
            x1 = queue_points_x.Dequeue()
 
            y1 = queue_points_y.Dequeue()
            x2 = queue_points_x.Dequeue()
            y2 = queue_points_y.Dequeue()
 
            gr.DrawLine(Pens.Beige, x1, y1, x2, y2)
        End If
        
    End Sub
 
 
  
    Private Sub ПрямоугольникToolStripMenuItem1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ПрямоугольникToolStripMenuItem1.Click
        Regim = 2
    End Sub
 
    Private Sub ЛинияToolStripMenuItem1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ЛинияToolStripMenuItem1.Click
        Regim = 1
    End Sub
End Class
Правда сейчас я бы так не делал - лучше вместо очереди использовать обычный список и сохранять туда - точки полностью, а не по отдельности координаты
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2011, 22:22
Помогаю со студенческими работами здесь

Рисование на picturebox и сохранение в файл
Добрый день, visual basic 2008 задача: рисовать но нажатию клавиши мышки, и иметь возможность сохранить это все в файл (jpg/bmp). ...

Рисование в PictureBox без затирания нарисованного
При клике рисую в picturebox1 линию, потом с помощью другой кнопки надо нарисовать линию, чтобы предыдущая не стерлась. Задаю Grap1 и...

Установка цвета фона PictureBox и последующее рисование на контейнере
Здравствуйте! Такая проблема: при исполнении данной программы сначала делается рисунок на Picture Box, а потом оно закрашивается цветом...

Рисование линии мышкой на PictureBox
Всем привет. Решил побаловаться, попробовать реализовать некое подобие Paint на C#. Начал с рисования линии. Вроде бы делаю все правильно:...

Рисование мышкой Qt
Привет всем. Осваиваю Qt и возник вопрос, как нарисовать мышкой прямую линию (как инструмент "Линия" в Paint) и сохранить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru