Страница: 1 |
Страница: 1 |
Вопрос: Проверка на пересечение
Добавлено: 12.01.08 15:20
Автор вопроса: Папоторник
Может кто сталкивался с тем, как сделать проверку на пересечение любой из точек на окружности шейпом, если последний находится внутри окружности. Заранее всем спасибо!
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 12.01.08 15:32
Пересечение точки это что-то из области хлопка одной ладони? Проверить, находится ли вершина внутри или снаружи окружности ты можешь, сравнив расстояние до нее от центра окружности с ее радиусом. Если хотя бы одна вершина многоугольника, который лежит внутри окружности, находится вне ее, то его стороны окружность пересекают.
Номер ответа: 2
Автор ответа:
Папоторник
Вопросов: 6
Ответов: 22
Профиль | | #2
Добавлено: 12.01.08 19:36
Вопрос не до конца превильный...) есть шейп - круг, и он двигается от центра большой окружности. Так вот как сделать так чтобы в момент пересечения шейпом окружности, шейп остановился? Вы скажите, если я с вопросом загнул или не туда обращаюсь.
Номер ответа: 3
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #3
Добавлено: 12.01.08 20:37
Вот кот!
У формы желательно поставить AutoRedraw=True, ScaleMode=3
'Координаты и радиус внешней окружности
Const cX As Integer = 180, cY As Integer = 180, cR As Integer = 140
'Радиус внутренней окружности
Const cR2 As Integer = 50
Private Sub Form_Load()
Call Form_MouseMove(1, 0, 130, 130)
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call Form_MouseMove(Button, Shift, X, Y)
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button <> 1 Then Exit Sub
Call Cls
Circle (cX, cY), cR 'Внешняя окружность
If Sqr((X - cX) ^ 2 + (Y - cY) ^ 2) > (cR - cR2) Then
Circle (X, Y), cR2, 255
Else
Circle (X, Y), cR2
End If
End Sub
Номер ответа: 4
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #4
Добавлено: 12.01.08 20:38
Правда у меня без шейпов. Но думаю несложно посчитать координаты центра и радиус шейпа
Номер ответа: 5
Автор ответа:
Папоторник
Вопросов: 6
Ответов: 22
Профиль | | #5
Добавлено: 12.01.08 21:31
Winand, выражаю огромную благодарность!(если она для вас что-то стоит))) То что нужно!!!