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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
tiker
2 / 2 / 0
Регистрация: 22.02.2011
Сообщений: 50
#1

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

05.10.2011, 09:24. Просмотров 1241. Ответов 14
Метки нет (Все метки)

Есть окружность с радиусом R центром О. Есть также точка А. Программа должна определять нахождение точки и если она в окружности то выводится соответсвующие сообщение.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2011, 09:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос определение нахождения точки (C++):

Геометрическая задача нахождения координат точки - C++
Дан прямоугольный треугольник заданный координатами своих вершин в структуре Point:struct Point { double x, y, z; }; Дана точка,...

Определение точки в плоскости - C++
Даны две точки на плоскости. Определить «самую левую», «самую правую», «самую верхнюю», «самую нижнюю».

Определение принадлежности точки фигуре - C++
Всем привет. Есть задача определения принадлежности точки фигуре. Как думаете, нормальный алгоритм или можно как-то улучшить, при...

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

Определение принадлежности точки к области - C++
Надо определить принадлежность точки к заданной области. Рисунок прикрепил. Вот код который опередит входит-ли точка в окружности,...

Дайте готовый код нахождения точки пересечения окружности с прямой :-) - C++
Нужен код нахождения точки пересечения окружности с прямой. Прямая задана координатами двух точек в 2D. Окружность "сидит" на одном из...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 10:54 #2
Учебник геометрии за седьмой класс почитай.
0
mimicria
return (true);
1957 / 1094 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
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;
}
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 11:13 #4
Цитата Сообщение от mimicria Посмотреть сообщение
if ((abs(xO-xA)<=R)&&(abs(yO-yA)<=R))
Ошибочное предположение.
0
Thinker
Эксперт C++
4226 / 2200 / 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)
0
mimicria
return (true);
1957 / 1094 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
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
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 11:21 #7
Цитата Сообщение от mimicria Посмотреть сообщение
Просто выражение "если она в окружности" можно понять по разному.
выражение предыдущего поста охватывает случай с граничными точками. Если нужны внутренние точки, то можно рассмотреть строгое неравенство, суть не сильно меняется.
0
mimicria
return (true);
1957 / 1094 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
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;
}
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 11:32 #9
Вот теперь уже окружность, а не квадрат, и мне почти нечего больше добавить.
Разве что, оператор сравнения на равенство это "==", а не "=" .
1
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 11:37 #10
mimicria, посмотрите еще раз неравенство из поста 5. В таких задачах обычно требуется, чтобы точка не на окружности лежала, а в пределах круга.
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 11:40 #11
Цитата Сообщение от Thinker Посмотреть сообщение
а в пределах круга
В комментарии это обговорено.)
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 11:42 #12
Цитата Сообщение от Deviaphan Посмотреть сообщение
В комментарии это обговорено.)
Тогда
C++
1
2
cout << "Inside";
  else cout << "Outside";
нелогично писать
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 11:43 #13
"Он зе сёркл" и "Нот он зе сёркл".)
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 11:45 #14
Цитата Сообщение от Deviaphan Посмотреть сообщение
"Он зе сёркл" и "Нот он зе сёркл".)
Другое дело )
0
tiker
2 / 2 / 0
Регистрация: 22.02.2011
Сообщений: 50
06.10.2011, 10:43  [ТС] #15
Программку сделал еще вчера. Всем спасибо за помощь.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2011, 10:43
Привет! Вот еще темы с ответами:

Определение положения точки относительно прямой - C++
В общем, есть прямая и координаты ее начала и конца. И есть точка, координаты которой тоже известны. Как узнать, находится точка выше или...

Определение трассы пути движения точки на плоскости - C++
Добрый день! С праздником всех!! Помогите поалуйста решить задачу.. Делал в Borland C++ 3.1 после ввода значений точек А и В автоматически...

Определение принадлежности точки указанной области (перевести с Pascal на C++) - C++
var x,y: real; begin write('Введите значения x, y: '); readln(x,y); if ((y&lt;0)and(y&gt;=-2)and(x&gt;=-1)and(x&lt;=1)) ...

Использовать функцию нахождения координат точки пересечения двух прямых и вычисления площади треугольника - C++
Здравствуйте, необходимо решить задачу, используя функцию. Условие задачи: Три прямые на плоскости заданы уравнениями аkx+bky+ck,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.10.2011, 10:43
Ответ Создать тему
Опции темы

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