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

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


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

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

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