Здавалка
Главная | Обратная связь

Практический пример на принадлежность точки кольцу.



Постановка задачи

На плоскости нарисовано кольцо с центром в точке (x0,y0). И радиусами границ r1<r2. Кроме того, на этой же плоскости дана точка с координатами (x, y). Необходимо определить, принадлежит ли эта точка кольцу.

Решение задачи

Для решения задачи необходимо вычислить расстояние от центра кольца до точки, и сравнить его с радиусами: 1. Если длина отрезка от центра до точки меньше чем радиус внешней окружности и при этом больше, чем радиус внутренней окружности, то точка принадлежит кольцу.
if(L>=r1&&L<=r2)

В противном случае точка не принадлежит кольцу.
2. Для выяснения расстояния, от центра до точки мы воспользуемся теоремой Пифагора - Квадрат гипотенузы равен сумме квадратов катетов. Следовательно - длина гипотенузы равна корню квадратному из суммы квадратов катетов.

Примечание:Нам понадобятся дополнительные знания для получения степени и корня квадратного.
1. В программу необходимо подключить библиотеку для использования математических функций под названием math.h.
2. Для возведения в степень используется функция pow(double num,double exp), где num это число для возведения в степень, а exp - сама степень.
3. Для извлечения корня квадратного используется функция sqrt(double num), где num это число из которого извлекают корень.

c=sqrt(pow(a,2)+pow(b,2));L=c;

3. Осталось выяснить длины катетов, на рисунке видно, как это сделать.

a=y-y0;b=x-x0;

Теперь осталось собрать все части решения в единое целое.

Код реализации.

#include <iostream>#include <math.h>using namespace std;void main() { // Объявление переменных int x0, y0, r1, r2, x, y; float L; // Запрос на ввод необходимых данных cout<<"Input coordinates of circle’s center (X0, Y0): "; cin>>x0>>y0; cout<<"Input circle radiuses R1 and R2: "; cin>>r1>>r2; cout<<"Input point coordinates (X, Y): "; cin>>x>>y; // Выведение формулы L = sqrt(pow(x - x0, 2) + pow(y - y0, 2)); //Анализ результатов if ((r1 < L)&& (L < r2 )) { cout<<"This point is situated inside the circle.\n"; } else { cout<<"This point is not situated inside the circle.\n"; }}
Предыдущая Оглавление Следующая  
Предыдущая Оглавление Следующая
           






©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.