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

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

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

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

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

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

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

Динамическая матрица (Найти координаты двух точек, наиболее удалённых друг от друга) - C++
Дана динамическая матрица размера N*2 (N вводится). Каждая строка матрицы содержит значения координат X и Y одной точки на плоскости,...

В массивах вещественных чисел X и Y записаны координаты точек на плоскости. Найти длины отрезков - C++
Помогите написать программу. В массивах вещественных чисел X и Y записаны координаты точек на плоскости. Найти длины отрезков и...

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

Координаты точек - C++
Напишите код программы. Заранее всем спасибо!!! Написать программу с использованием структуры, состоящей из переменных (координат точек)...

координаты точек на спирали - C++
Не знал в какой раздел написать... Подскажите пожалуйста, как по спирали равномерно вывести символы? Точнее больше интересует сам...

Задача на координаты точек - C++
Ввести с клавиатуры координаты точек (xl, yl) и (х2, у2) и определить рас¬стояние между этими точками.

Координаты точек на выпуклой оболочке - C++
Привет всем. Помогите пожалуйста с задачей :) В общем, есть множество точек на плоскости, и надо найти точки (и, соответственно, их...

Координаты точек на границах объекта - C++
Доброго времени суток. Помогите балбесу. Задача состоит в получении плоскости точек объекта. На белом экране с веб-камеры делается снимок...

Как задать координаты точек? - C++
Здраствуйте! Очень нужно узнать как задать координаты точек на плоскости (x,y) и делать простейшие арифметические операции с ними на...


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

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

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