Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
6 / 6 / 3
Регистрация: 07.04.2015
Сообщений: 123

Как нарисовать полигон по указанным координатам?

05.06.2015, 13:26. Показов 2794. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Стоит такая задача: я динамически создаю несколько TextBox по клику на PictureBox, затем заполняю их координатами. Вот код:
VB.NET
1
2
3
4
5
Dim I As Integer
    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal g As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.Click
        Dim TB As New TextBox With {.Left = 1000, .Top = I * 20 + 15, .Parent = Me, .Width = 50, .Text = g.X.ToString & ", " & g.Y.ToString}
        I += 1
    End Sub
Как сделать так, чтобы потом я мог прорисовывать фигуру по указанным мной координатам? Помогите.
Есть такой вариант прорисовки, но не понимаю как правильно указать координаты:
VB.NET
1
2
3
4
        Dim g As Graphics = PictureBox1.CreateGraphics
        Dim pn As New Pen(Color.DarkSlateBlue, 3)
        Dim Pol As Point() = {New Point(TextBox(I).Text - вот здесь непонятки)}
        g.DrawPolygon(pn, Pol)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2015, 13:26
Ответы с готовыми решениями:

Нарисовать квадрат по указанным координатам его центра (точки пересечения диагоналей) и длиной стороны
Нарисовать квадрат по указанным координатам его центра (точки пересечения диагоналей) и длиной стороны.

Как нарисовать полигон
Помогите пожалуйста найти методички и материал для построения.

Как по указанным координатам проверить цвет пикселя?
Как по указанным координатам проверить цвет пикселя, проверка должна идти в браузере. Помогите пожалуйста новичку)

4
179 / 179 / 52
Регистрация: 11.03.2014
Сообщений: 200
05.06.2015, 14:24
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

А может сразу в массив собирать?

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Class Form1
    Dim I As Integer
    Dim Pol As Point() = New Point() {}
    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal g As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.Click
        Array.Resize(Pol, Pol.Length + 1)
        Dim TB As New TextBox With {.Left = 1000, .Top = I * 20 + 15, .Parent = Me, .Width = 50, .Text = g.X.ToString & ", " & g.Y.ToString}
        Pol(I) = PictureBox1.PointToClient(Cursor.Position)
        I += 1
    End Sub
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim g As Graphics = PictureBox1.CreateGraphics
        Dim pn As New Pen(Color.DarkSlateBlue, 3)
        g.DrawPolygon(pn, Pol)
    End Sub
End Class
2
6 / 6 / 3
Регистрация: 07.04.2015
Сообщений: 123
05.06.2015, 20:23  [ТС]
Спасибо большое. Остался только один вопрос: как сделать, чтобы я мог на picturebox добавлять несколько полигонов?
0
179 / 179 / 52
Регистрация: 11.03.2014
Сообщений: 200
05.06.2015, 20:52
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Если действующие лица все те же, то так:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Class Form1
    Dim I As Integer
    Dim Pol As Point() = New Point() {}
    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal g As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.Click
        Array.Resize(Pol, Pol.Length + 1)
        Dim TB As New TextBox With {.Left = 1000, .Top = I * 20 + 15, .Parent = Me, .Width = 50, .Text = g.X.ToString & ", " & g.Y.ToString}
        Pol(I) = PictureBox1.PointToClient(Cursor.Position)
        I += 1
    End Sub
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim g As Graphics = PictureBox1.CreateGraphics
        Dim pn As New Pen(Color.DarkSlateBlue, 3)
        g.DrawPolygon(pn, Pol)
        Pol = New Point() {}
        I = 0
    End Sub
End Class
0
6 / 6 / 3
Регистрация: 07.04.2015
Сообщений: 123
07.06.2015, 20:56  [ТС]
То что нужно! Благодарю. Последнее: как можно добавлять на picture box неограниченное количество отдельных полигонов, и второе - как задавать новое родительское поле для каждого полигона?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.06.2015, 20:56
Помогаю со студенческими работами здесь

Как послать клик мышой по указанным координатам? надо
Мужики Все сказано в заголовке моей просьбы!!!

Как нарисовать фигуру через полигон по точкам
Вот мой проект, объясните теперь мне пожалуйста: 1/Как нарисовать фигуру через полигон по точкам? 2/Как написать чтобы сохраняло в...

Как послать клик мышой по указанным координатам? Очень надо
Необходимо послать клик мышью в прилложение (в определенной его место) спустя несколько секунд. Надеюсь на вашу омощь и понимание (КАК...

Можно ли как-то нарисовать полигон по 3-м точкам и закрасить его
Можно ли как-то нарисовать полигон по 3-м точкам и закрасить его ? Просто мне нужно нарисовать как-то "улыбку" для смайлика....

Нарисовать полигон
Фигура


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru