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

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

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

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

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

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

Координаты точек C++
Найти координаты всех седловых точек матрицы C++
координаты точек на спирали C++
Координаты точек C++
C++ Найти координаты точек пересечения двух кругов
C++ Динамическая матрица (Найти координаты двух точек, наиболее удалённых друг от друга)
Найти координаты точек пересечения окружности с экспонентой и сформировать из них множество А C++
C++ Найти координаты точки наиболее удалённой от начала координат. Если таких точек несколько, вывести первую найденную
C++ Найти координаты точек пересечения параболы и экспоненты
Найти количество и координаты точек пересечения 2-х эллипсов C++
В массивах вещественных чисел X и Y записаны координаты точек на плоскости. Найти длины отрезков C++
C++ Получить координаты точек сферы, равноотстоящие от соседних точек

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,911
Завершенные тесты: 1
22.02.2010, 23:25     Найти координаты точек #2
Ну и что за проблемы? Составь квадратное уравнение да реши в общем виде.
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,412
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     Найти координаты точек
Ответ Создать тему
Опции темы

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