LineShape - соединить линиями несколько PictureBox - Visual Basic .NET
Формулировка задачи:
Доброго времени суток..
Люди подскажите .. Есть форма.. на ней 15 PictureBox'ов выстроеных в прямоугольник и 1 LineShape
я задаю координаты для LineShape и линия соединяет эти PictureBox'ы ..
1-ых .. Не могу добиться чтобы LineShape был по верх PictureBox'ов ...
2-ых .. Как сделать чтобы выводились в Listbox те PictureBox'ы которые пересекает LineShape
Заранее благодарен!..
Решение задачи: «LineShape - соединить линиями несколько PictureBox»
textual
Листинг программы
- ''' <summary>
- ''' функция проверяет пересечение прямоугольника с отрезком
- ''' </summary>
- ''' <param name="rect">проверяемый прямоугольник</param>
- ''' <param name="p1">первая точка отрезка</param>
- ''' <param name="p2">вторая точка отрезка</param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Function crossrect_line(ByVal rect As Rectangle, ByVal p1 As Point, ByVal p2 As Point) As Boolean
- ' задаемся координатами вершин прямоугольника. Считаем А - верхняя слева и далее по часовой стрелке обходим.
- Dim A, B, C, D As Point
- A = New Point(rect.Left, rect.Top)
- B = New Point(rect.Right, rect.Top)
- C = New Point(rect.Bottom, rect.Right)
- D = New Point(rect.Left, rect.Bottom)
- If rect.Contains(p1) Or rect.Contains(p2) Then Return True ' отрезок полностью находится в прямоугольнике или же одна из его конечных точек находится в прямоугольнике. Дальнейшие проверки бессмысленны.
- ' если же отрезок прошел насквозь, поочередно проверяем пересечение со сторонами. Если хоть одна сторона пересеклась, то отрезок пересекает прямоугольник. Если ни одна сторона не пересеклась - не пересекает.
- ' надо проверить на пересечение с нашим отрезком (p1,p2) отрезков-сторон прямоугольника AB, BC, CD, AD
- If crosslines(A, B, p1, p2) Then Return True
- If crosslines(B, C, p1, p2) Then Return True
- If crosslines(C, D, p1, p2) Then Return True
- If crosslines(A, D, p1, p2) Then Return True
- Return False
- End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д