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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2008, 22:06   #1
pantera_88.07
Новичок
Джуниор
 
Регистрация: 20.02.2008
Сообщений: 2
По умолчанию Помогите решить задачу

Привет всем! Помогите, пожалуйста, решить задачу: Написать программу, которая определяет, попадает ли точка с заданными координатами в закрашенную область на рисунке.
Изображения
Тип файла: bmp График_3.bmp (55.2 Кб, 162 просмотров)
pantera_88.07 вне форума Ответить с цитированием
Старый 20.02.2008, 23:02   #2
alexx777
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 75
По умолчанию

Пусть (x, y) - координаты точки.
R - радиус.

Сначала проверим, попадает ли точка в четверть окружности:
1. попадает ли точка во II четверть: (x<=0)&&(y>=0).
2. попадает ли точка в окружность: (x*x+y*y)<=R*R.
Если точка не попадает в четверть окружности проверяем треугольник:
1. попадает ли точка в IV четверть: (x>=0)&&(y<=0).
2. попадает ли точка в треугольник:
((0>=x)&&(x<=R/2))&&(y>(-2*x)).
или
((R/2>=x)&&(x<=R))&&(y>(2*(x-R))).

Тоесть нужно написать что-то вроде:
Код:
if((x<=0)&&(y>=0)){
 if((x*x+y*y)<=R*R){
  // Точка попадает в закрашенную область.
 }
}else if((x>=0)&&(y<=0)){
 if(((0>=x)&&(x<=R/2))&&(y>(-2*x))){
  // Точка попадает в закрашенную область.
 }
 if(((R/2>=x)&&(x<=R))&&(y>(2*(x-R)))){
  // Точка попадает в закрашенную область.
 }
}
// Точка не попадает в закрашенную область.

Последний раз редактировалось alexx777; 21.02.2008 в 07:29.
alexx777 вне форума Ответить с цитированием
Старый 21.02.2008, 15:09   #3
pantera_88.07
Новичок
Джуниор
 
Регистрация: 20.02.2008
Сообщений: 2
По умолчанию

alexx777, спасибочки!
pantera_88.07 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите решить задачу... studentIC Помощь студентам 3 12.03.2008 08:29
Помогите решить задачу. Кронос Помощь студентам 3 28.10.2007 14:11
Помогите решить задачу cL1zMa Паскаль, Turbo Pascal, PascalABC.NET 5 15.12.2006 11:04