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

определение нахождения точки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
tiker
2 / 2 / 0
Регистрация: 22.02.2011
Сообщений: 50
05.10.2011, 09:24     определение нахождения точки #1
Есть окружность с радиусом R центром О. Есть также точка А. Программа должна определять нахождение точки и если она в окружности то выводится соответсвующие сообщение.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 10:54     определение нахождения точки #2
Учебник геометрии за седьмой класс почитай.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
05.10.2011, 11:06     определение нахождения точки #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
#include <math.h>
 
int main(void)
{
  int xO,xA,yO,yA,R;
  cin >> xO >> xA >> yO >> yA >> R;
  if ((abs(xO-xA)<=R)&&(abs(yO-yA)<=R))
   cout << "Inside";
  else cout << "Outside";
  return 0;
}
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 11:13     определение нахождения точки #4
Цитата Сообщение от mimicria Посмотреть сообщение
if ((abs(xO-xA)<=R)&&(abs(yO-yA)<=R))
Ошибочное предположение.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 11:17     определение нахождения точки #5
mimicria, точка A(x,y) принадлежит области круга радиуса R с центром O(x0,y0), если расстояние этой точки до центра круга не превышает R, то есть
C++
1
if ((x-x0)*(x-x0) + (y-y0)*(y-y0) <= R*R)
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
05.10.2011, 11:19     определение нахождения точки #6
Цитата Сообщение от Deviaphan Посмотреть сообщение
Ошибочное предположение.
Просто выражение "если она в окружности" можно понять по разному. В пределах окружности например.
Находится ли точка на самой окружности можно узнать по формуле (x-a)^2 + (y-b)^2 = R^2, где
x,y - координаты точки на окружности,
a,b - координаты центра окружности
R - радиус окружности.
Аааа блин тупанул.
Правильно проверять так:
(x - a)^2 + (y - b)^2 <= R^2
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 11:21     определение нахождения точки #7
Цитата Сообщение от mimicria Посмотреть сообщение
Просто выражение "если она в окружности" можно понять по разному.
выражение предыдущего поста охватывает случай с граничными точками. Если нужны внутренние точки, то можно рассмотреть строгое неравенство, суть не сильно меняется.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
05.10.2011, 11:28     определение нахождения точки #8
Логично =)
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
#include <math.h>
 
int main(void)
{
  int xO,xA,yO,yA,R;
  cin >> xO >> xA >> yO >> yA >> R;
  if (((xO-xA)*(xO-xA)+(yO-yA)*(yO-yA))==(R*R)) // или <= 
   cout << "Inside";
  else cout << "Outside";
  return 0;
}
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 11:32     определение нахождения точки #9
Вот теперь уже окружность, а не квадрат, и мне почти нечего больше добавить.
Разве что, оператор сравнения на равенство это "==", а не "=" .
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 11:37     определение нахождения точки #10
mimicria, посмотрите еще раз неравенство из поста 5. В таких задачах обычно требуется, чтобы точка не на окружности лежала, а в пределах круга.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 11:40     определение нахождения точки #11
Цитата Сообщение от Thinker Посмотреть сообщение
а в пределах круга
В комментарии это обговорено.)
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 11:42     определение нахождения точки #12
Цитата Сообщение от Deviaphan Посмотреть сообщение
В комментарии это обговорено.)
Тогда
C++
1
2
cout << "Inside";
  else cout << "Outside";
нелогично писать
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 11:43     определение нахождения точки #13
"Он зе сёркл" и "Нот он зе сёркл".)
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 11:45     определение нахождения точки #14
Цитата Сообщение от Deviaphan Посмотреть сообщение
"Он зе сёркл" и "Нот он зе сёркл".)
Другое дело )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2011, 10:43     определение нахождения точки
Еще ссылки по теме:

C++ Определение принадлежности точки к графику
C++ Определение точки в плоскости
Дайте готовый код нахождения точки пересечения окружности с прямой :-) C++

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

Или воспользуйтесь поиском по форуму:
tiker
2 / 2 / 0
Регистрация: 22.02.2011
Сообщений: 50
06.10.2011, 10:43  [ТС]     определение нахождения точки #15
Программку сделал еще вчера. Всем спасибо за помощь.
Yandex
Объявления
06.10.2011, 10:43     определение нахождения точки
Ответ Создать тему
Опции темы

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