Форум программистов, компьютерный форум CyberForum.ru

Программа определюющая принадлежность точки фигуре. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Виктория_иля
 Аватар для Виктория_иля
0 / 0 / 0
Регистрация: 20.03.2012
Сообщений: 13
25.03.2012, 16:18     Программа определюющая принадлежность точки фигуре. #1
Не могу написать программу определяющую принадлежность точки фигуре((
Миниатюры
Программа определюющая принадлежность точки фигуре.  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.03.2012, 16:30     Программа определюющая принадлежность точки фигуре. #2
в чем именно проблема? иф елсами все границы задай
Виктория_иля
 Аватар для Виктория_иля
0 / 0 / 0
Регистрация: 20.03.2012
Сообщений: 13
25.03.2012, 16:42  [ТС]     Программа определюющая принадлежность точки фигуре. #3
как задать круг, квадрат понятно, а вот как исключить область их пересечения? я в условиях запуталась((
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.03.2012, 16:46     Программа определюющая принадлежность точки фигуре. #4
Цитата Сообщение от Виктория_иля Посмотреть сообщение
как задать круг, квадрат понятно, а вот как исключить область их пересечения? я в условиях запуталась((
сделай отдельно функции для каждого кусочка отдельно. Правый сектор - условия - угол от -45 до 45 + внутри круга.
Хотя если квадраты и круг уже заданы, то проще просто условиями исключить верхний и нижний сектор. Задаёшь начальное false, потом прогоняешь принадлежность вообще фигурам. Если принадлежит, то делаешь true. И в конце проверяешь находится ли в этих секторах. Если находится, то опять на false меняешь.
Виктория_иля
 Аватар для Виктория_иля
0 / 0 / 0
Регистрация: 20.03.2012
Сообщений: 13
25.03.2012, 17:49  [ТС]     Программа определюющая принадлежность точки фигуре. #5
мне бы набросок....плизз))
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.03.2012, 18:24     Программа определюющая принадлежность точки фигуре. #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int verhniy_kvadrat(float x,float y)
{
 //если внутри, то вернуть 1    
}
 
int nijniy_kvadrat(float x,float y)
{
 //если внутри, то вернуть 1   
}
 
int krug(float x,float y)
{
 //если внутри, то вернуть 1     
}
 
int main()
{
 //
 int prinadlejit=0;
 if (krug(x,y)==1) prinadlejit=1;
 if (verhniy_kvadrat(x,y)==1) prinadlejit=1;
 if (nijniy_kvadrat(x,y)==1) prinadlejit=1;  
 if ((krug(x,y)==1)&&((verhniy_kvadrat(x,y)==1)||(nijniy_kvadrat(x,y)==1))) prinadlejit=0;
 if (prinadlejit==1) printf("prinadlejit"); else printf("ne prinadlejit");   
}
Добавлено через 45 секунд
это набросок неоптимизированный нифига, но, думаю, направление мысли будет понятно
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
25.03.2012, 18:40     Программа определюющая принадлежность точки фигуре. #7
Цитата Сообщение от Nekto Посмотреть сообщение
в чем именно проблема? иф елсами все границы задай
Вообще-то топикстартер задал задачу, какую просто перебором не решить.
"Принадлежность точки фигуре" не самая тривиальная задача, особенно когда речь идёт об абстрактной "фигуре"

Реши сначала частный случай для выпуклых многоугольников. Чёрт, забыл название алгоритма. Помню делал лабы по наподобие этих http://www.atsclub.narod.ru/rus/students/graphics.html глянь, может хотя бы название алгоритма отищешь.

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

Добавлено через 4 минуты
Ой ё! Так у него просто конкретная фигура из пересечения двух ромбов и круга!!!
А я то кинулся рассуждать о про проблемы пересечения произвольных невыпуклых фигур....
А так да, проверить попадания в каждую из трёх фигур и ветвлением выяснить, что там с чем пересеклось!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2012, 22:56     Программа определюющая принадлежность точки фигуре.
Еще ссылки по теме:

C++ Программа, проверяющая принадлежность точки к данному графику
C++ Принадлежность точки к фигуре
C++ Принадлежность точки прямоугольнику
C++ Определить принадлежность точки геометрической фигуре
Принадлежность заданных точек фигуре C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Виктория_иля
 Аватар для Виктория_иля
0 / 0 / 0
Регистрация: 20.03.2012
Сообщений: 13
25.03.2012, 22:56  [ТС]     Программа определюющая принадлежность точки фигуре. #8
у меня бред получился, как сделать это красиво и лаконично??
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*zadanie oblasti*/
# include <stdio.h>
# include <math.h>
void main (void)
{
  float x,y;
  printf ("vvedite x=");
  scanf ("%f", & x);
  printf ("vvedite y=");
  scanf("%f",& y);
  if
    ((x*x+y*y>=1 && (y<=2-x && y<=2+x && y>=x && y>=-x)) || ((x*x+y*y>=1) && (y<=2-x && y<=2+x && y>=x && y>=-x)) ||(((x*x+y*y>=1 && (y<=-x && y<=x && y>=2-x && y>=2+x)))
      printf ("vhodit");
  else
  {
   printf ("ne vhodit\n");
  }
  getch();
}
Yandex
Объявления
25.03.2012, 22:56     Программа определюющая принадлежность точки фигуре.
Ответ Создать тему
Опции темы

Текущее время: 17:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru