Помогите с формулой

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Nikolka
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 174
Зарегистрирован: 01.01.2004 (Чт) 2:06

Помогите с формулой

Сообщение Nikolka » 07.08.2005 (Вс) 14:45

Есть формула определения - наведён ли указатель мыши на круглый объект. Вот она(X и Y - это соответствующие кординаты мыши):

r = sh.Width / 2
cx = sh.Left + r
cy = sh.Top + r
d2 = (X - cx) * (X - cx) + (Y - cy) * (Y - cy)
If d2 < r * r Then MouseOK=True

Но вот - эта формула справедлива только для полностью округлых фигур. А если фигура овальная? :?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.08.2005 (Вс) 14:52

Эллипс есть геометрическом место точек, сумма расстояний от которых до двух заданных точек равна длине большой оси.

То есть тебе надо для начала знать координаты двух фокусов эллипса. Ты их знаешь? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

schalexey
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 18.02.2005 (Пт) 17:41
Откуда: Сургут

Сообщение schalexey » 07.08.2005 (Вс) 17:59

Nikolka
если не ошибаюсь то уравнение элипса (каноническое) имеет вид:

x^2/a^2 + y^2/b^2 = 1

где a b длины осей элипса... так что попробуй с этим..

ЗЫ еще почитай курс аналитической геометрии... раздел кривые второго порядка.

Nikolka
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 174
Зарегистрирован: 01.01.2004 (Чт) 2:06

Сообщение Nikolka » 09.08.2005 (Вт) 0:30

To schalexey:
Да, я проглядел эту формулу в книжке, но никак не могу понять откуда взять a и b.

To GSerg:
Собственно всё, что я знаю - это все свойства, которые есть у любого контрола :wink:

КАРОЧЕ: мне нужно просто сделать круглый элемент управления но без привлечения регионов.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 09.08.2005 (Вт) 7:00

мне нужно просто сделать круглый элемент управления но без привлечения регионов.

Но, тебе не кажется, что без регионов он не сможет стать круглым??? :wink:
А я все практикую лечение травами...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 25

    TopList