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

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

Восстановить пароль Регистрация
 
Le4o
 Аватар для Le4o
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 22
22.02.2010, 22:44     Найти координаты точек #1
Найти координаты точек пересечения прямой y = kx + b и окружности радиуса R с центром в начале координат. В каких координатных четвертях находятся точки пересечения. Если точек пересечения нет или прямая касается окружности, выдать соответствующее сообщение.
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++
C++ Определить, сколько точек пересечения имеют прямая и окружность и найти координаты этих точек
Найти координаты точек пересечения окружности с экспонентой и сформировать из них множество А C++
C++ Найти координаты точек пересечения параболы и экспоненты
Ввести координаты точек. Вычислить расстояния от всех точек до точки, введенной последней C++
Найти количество и координаты точек пересечения 2-х эллипсов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
22.02.2010, 23:25     Найти координаты точек #2
Ну и что за проблемы? Составь квадратное уравнение да реши в общем виде.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
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;
}
Yandex
Объявления
23.02.2010, 07:12     Найти координаты точек
Ответ Создать тему
Опции темы

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