Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2007, 14:27   #1
KJIOyH
Пользователь
 
Регистрация: 22.09.2007
Сообщений: 15
По умолчанию Монте карло

Есть некая фигура,с клавиатуры вводиться две координаты точки Х и У. нам надо определить попадает точка в фигуру или нет.
Подскажите плз какое условие надо написать для эллипса.
KJIOyH вне форума Ответить с цитированием
Старый 27.09.2007, 19:37   #2
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Ммм да.... Здесь все гораздо сложнее чем просто условие поставить. Могу только предположить что надо связывать с факальными радиусами или даже параметрическими уравнениями, а может даже тут эксцентриситет и дирректриса помочь могут!
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 27.09.2007, 20:00   #3
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Цитата:
Здесь все гораздо сложнее чем просто условие поставить. Могу только предположить что надо связывать с факальными радиусами или даже параметрическими уравнениями, а может даже тут эксцентриситет и дирректриса помочь могут!
загнул...

Цитата:
Подскажите плз какое условие надо написать для эллипса
для элипса - легко:
x/(a*a) + y/(b*b) <=0
a - радиус элипса по оси Х
b - радиус элипса по оси Y

Подставляешь в это неравенство свою точку, если оно выполняется, то точка принадлежит элипсу.
zetrix вне форума Ответить с цитированием
Старый 27.09.2007, 20:41   #4
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Цитата:
x/(a*a) + y/(b*b) <=0
Ээ, откуда ты это выкопал? Разве не x^2/a^2 + y^2/b^2 <= 1 ?
still_alive вне форума Ответить с цитированием
Старый 28.09.2007, 08:15   #5
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Возможно )
zetrix вне форума Ответить с цитированием
Старый 28.09.2007, 14:35   #6
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

квадраты у X и Y точно будут, т.к.
уравнение окружности (X-a)^2 + (Y-b)^2 = R^2 ..
а это частный случай эллипса
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 29.09.2007, 19:41   #7
KJIOyH
Пользователь
 
Регистрация: 22.09.2007
Сообщений: 15
По умолчанию

У меня фигура состоит из эллипса,треугольника,2х полукругов. эллипс задал,спасибо . полукруг -я предполагаю та же формула что с окружностью,только деленная пополам ?
А для треугольника не знаю,написал
y>=a && x>=-b && x<=b && c>=x*x+y*y ,где с=a*a+b*b
Не работает такой вариант. есть другие ?
KJIOyH вне форума Ответить с цитированием
Старый 29.09.2007, 19:51   #8
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Цитата:
полукруг -я предполагаю та же формула что с окружностью,только деленная пополам
Нет. Просто наложить еще одно условие на уравнение окружности. Что это за условие - зависит от того, какой именно полукруг тебе нужен.

Цитата:
А для треугольника не знаю
Соединить точку с вершинами треугольника, посчитать суммарную площадь трех треугольников (проще всего через векторное произведение), а затем сравнить с площадью исходного треугольника.
still_alive вне форума Ответить с цитированием
Старый 29.09.2007, 20:02   #9
KJIOyH
Пользователь
 
Регистрация: 22.09.2007
Сообщений: 15
По умолчанию

Цитата:
Сообщение от still_alive Посмотреть сообщение
Нет. Просто наложить еще одно условие на уравнение окружности. Что это за условие - зависит от того, какой именно полукруг тебе нужен.


Соединить точку с вершинами треугольника, посчитать суммарную площадь трех треугольников (проще всего через векторное произведение), а затем сравнить с площадью исходного треугольника.
Я нашел формулу для ромба,состоящего из моего треугольника во все 4 стороны направленного.
(y<=x+d/2) and (y>=-x-d/2) and (y>=x-d/2) and (y<=-x+d/2)
Про улыбку- сначала ищем 1 полукруг. x*x+y*y<=r*r and y<=0 . Мысля верна ?
Вложения
Тип файла: zip сканирование0005as.zip (155.8 Кб, 29 просмотров)
KJIOyH вне форума Ответить с цитированием
Старый 29.09.2007, 20:08   #10
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Цитата:
Мысля верна ?
Да.

Цитата:
Я нашел формулу для ромба
А смысл?
still_alive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц