LineShape - соединить линиями несколько PictureBox - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток.. Люди подскажите .. Есть форма.. на ней 15 PictureBox'ов выстроеных в прямоугольник и 1 LineShape я задаю координаты для LineShape и линия соединяет эти PictureBox'ы .. 1-ых .. Не могу добиться чтобы LineShape был по верх PictureBox'ов ... 2-ых .. Как сделать чтобы выводились в Listbox те PictureBox'ы которые пересекает LineShape Заранее благодарен!..

Решение задачи: «LineShape - соединить линиями несколько PictureBox»

textual
Листинг программы
  1. ''' <summary>
  2.     ''' функция проверяет пересечение прямоугольника с отрезком
  3.     ''' </summary>
  4.     ''' <param name="rect">проверяемый прямоугольник</param>
  5.     ''' <param name="p1">первая точка отрезка</param>
  6.     ''' <param name="p2">вторая точка отрезка</param>
  7.     ''' <returns></returns>
  8.     ''' <remarks></remarks>
  9.     Function crossrect_line(ByVal rect As Rectangle, ByVal p1 As Point, ByVal p2 As Point) As Boolean
  10.         ' задаемся координатами вершин прямоугольника. Считаем А - верхняя слева и далее по часовой стрелке обходим.
  11.         Dim A, B, C, D As Point
  12.         A = New Point(rect.Left, rect.Top)
  13.         B = New Point(rect.Right, rect.Top)
  14.         C = New Point(rect.Bottom, rect.Right)
  15.         D = New Point(rect.Left, rect.Bottom)
  16.         If rect.Contains(p1) Or rect.Contains(p2) Then Return True ' отрезок полностью находится в прямоугольнике или же одна из его конечных точек находится в прямоугольнике. Дальнейшие проверки бессмысленны.
  17.         ' если же отрезок прошел насквозь, поочередно проверяем пересечение со сторонами. Если хоть одна сторона пересеклась, то отрезок пересекает прямоугольник. Если ни одна сторона не пересеклась - не пересекает.
  18.         ' надо проверить на пересечение с нашим отрезком (p1,p2) отрезков-сторон прямоугольника AB, BC, CD, AD
  19.         If crosslines(A, B, p1, p2) Then Return True
  20.         If crosslines(B, C, p1, p2) Then Return True
  21.         If crosslines(C, D, p1, p2) Then Return True
  22.         If crosslines(A, D, p1, p2) Then Return True
  23.         Return False
  24.     End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут