Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Проверка на пересечение Добавлено: 12.01.08 15:20  

Автор вопроса:  Папоторник
Может кто сталкивался с тем, как сделать проверку на пересечение любой из точек на окружности шейпом, если последний находится внутри окружности. Заранее всем спасибо!

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 12.01.08 15:32
Пересечение точки это что-то из области хлопка одной ладони? Проверить, находится ли вершина внутри или снаружи окружности ты можешь, сравнив расстояние до нее от центра окружности с ее радиусом. Если хотя бы одна вершина многоугольника, который лежит внутри окружности, находится вне ее, то его стороны окружность пересекают.

Ответить

Номер ответа: 2
Автор ответа:
 Папоторник



Вопросов: 6
Ответов: 22
 Профиль | | #2 Добавлено: 12.01.08 19:36
Вопрос не до конца превильный...) есть шейп - круг, и он двигается от центра большой окружности. Так вот как сделать так чтобы в момент пересечения шейпом окружности, шейп остановился? Вы скажите, если я с вопросом загнул или не туда обращаюсь.

Ответить

Номер ответа: 3
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #3
Добавлено: 12.01.08 20:37
Вот кот!
У формы желательно поставить AutoRedraw=True, ScaleMode=3
Option Explicit
'Координаты и радиус внешней окружности
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-сайт: winandfx.narod.ru
 Профиль | | #4
Добавлено: 12.01.08 20:38
Правда у меня без шейпов. Но думаю несложно посчитать координаты центра и радиус шейпа

Ответить

Номер ответа: 5
Автор ответа:
 Папоторник



Вопросов: 6
Ответов: 22
 Профиль | | #5 Добавлено: 12.01.08 21:31
Winand, выражаю огромную благодарность!(если она для вас что-то стоит))) То что нужно!!!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам