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

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

Войти
Регистрация
Восстановить пароль
 
Le4o
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 22
#1

Найти координаты точек - C++

22.02.2010, 22:44. Просмотров 465. Ответов 2
Метки нет (Все метки)

Найти координаты точек пересечения прямой y = kx + b и окружности радиуса R с центром в начале координат. В каких координатных четвертях находятся точки пересечения. Если точек пересечения нет или прямая касается окружности, выдать соответствующее сообщение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2010, 22:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти координаты точек (C++):

Определить, сколько точек пересечения имеют прямая и окружность и найти координаты этих точек - C++
Привет. Тут такое дело. В общем я неплохо знаю сам язык, но вот задачку решить не могу. Т.е не знаю как. С школьной математикой у меня...

Заданы координаты точки подвеса математического маятника A(xa, ya, za) и координаты одной из точек его наивысшего подъема B(xb, yb, zb). Найти координ - C++
помогите написать программу на с++ Добавлено через 37 секунд вот задача:Заданы координаты точки подвеса математического маятника...

Найти координаты точек пересечения - C++
Для заданной окружности и луча в плоскости определить, пересекает ли луч окружность. Найти координаты точек пересечения. На ввод...

Найти координаты точек пересечения прямой и окружности - C++
Найти координаты точек пересечения прямой y=kx+b и окружности радиуса R с центром в начале координат. В каких координатных четвертях...

Найти координаты точек пересечения параболы и экспоненты - C++
Есть два задания, которые так и не смог осилить (с остальными справился) Очень нужна помощь. 1 . С клавиатуры пользователь вводит...

Найти координаты точек пересечения двух кругов - C++
Помогите, пожалуйста, решить такую задачу, очень нужен код ... С клавиатуры вводятся радиусы и координаты центров двух кругов. Найти...

2
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
22.02.2010, 23:25 #2
Ну и что за проблемы? Составь квадратное уравнение да реши в общем виде.
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
23.02.2010, 07:12 #3
Подставим уравнение прямой в уравнение окружности, получим равенство:
x^2(1+k^2)+2kbx+(b^2-R^2)=0. Очевидно, что главный коэффициент не равен нулю.
Дискриминант и корни находим для уравнения с четным вторым коэффициентом.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <cmath>
 
#define GET(A) { std::cout << "Введите " << #A \
    << ": "; std::cin >> A; }
 
int main()
{
    setlocale(LC_ALL, "Russian");
    double k, b, R, D;
    GET(k);
    GET(b);
    GET(R);
    D=k*b*k*b-(1+k*k)*(b*b-R*R);
    if(D<0)
        std::cout << "Точек пересечения нет" << std::endl;
    else if(D==0)
    {
        double x1, y1;
        x1=-(k*b)/(1+k*k);
        if(x1==0)
            x1=int(x1);
        y1=k*x1+b;
        std::cout << "Прямая касается окружности в точке ("
                  << x1 << "; " << y1 << ")" << std::endl;
    }
    else
    {
        double x1, x2, y1, y2;
        x1=(-k*b-sqrt(D))/(1+k*k);
        x2=(-k*b+sqrt(D))/(1+k*k);
        if(x1==0)
            x1=int(x1);
        if(x2==0)
            x2=int(x2);
        y1=k*x1+b;
        y2=k*x2+b;
        std::cout << "Прямая пересекает окружность в точках ("
                  << x1 << "; " << y1 << ") и (" << x2 << "; " << y2 << 
                  ")" << std::endl;
    }
    system("pause");
    return EXIT_SUCCESS;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2010, 07:12
Привет! Вот еще темы с ответами:

Найти количество и координаты точек пересечения 2-х эллипсов - C++
Нужно найти точки пересечения 2-х эллипсов заданных уравнениями вида: (x-x1)2/a12+(y-y1)2/b12=1 (x-x2)2/a22+(y-y2)2/b22=1 нужно...

Найти координаты всех седловых точек матрицы - C++
Помогите плз написать прогу: Используя динамический массив. В целочисленной прямоугольной матрице A(mxn) найти: - номер первой из...

Найти координаты точек пересечения окружности с экспонентой и сформировать из них множество А - C++
С клавиатуры вводится радиус окружности с центром в начале координат. Найти координаты точек пересечения окружности с экспонентой и...

Ввести координаты точек. Вычислить расстояния от всех точек до точки, введенной последней - C++
С клавиатуры вводятся координаты точек на плоскости в виде строк, представляющих пару в формате “(x,y)”. Строка должна быть...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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