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

По заданным координатам центра окружности и ее радиусу определить координаты точек пересечения окружности с осями координат. - C++

Восстановить пароль Регистрация
 
Lefinator
0 / 0 / 0
Регистрация: 30.01.2014
Сообщений: 7
31.01.2014, 14:06     По заданным координатам центра окружности и ее радиусу определить координаты точек пересечения окружности с осями координат. #1
По заданным координатам центра окружности и ее радиусу определить координаты точек пересечения окружности с осями координат.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2014, 14:06     По заданным координатам центра окружности и ее радиусу определить координаты точек пересечения окружности с осями координат.
Посмотрите здесь:

C++ С клаавиатуры вводятся координаты (x, y) пяти точек и радиус окружности.
Найти координаты точек пересечения прямой и окружности C++
Вычислительная геометрия (Даны координаты центра, R окружности, координаты точки вне окруж-ти. Найти точку пересечения одной из касательных с окруж-ю) C++
Найти координаты точек пересечения окружности с экспонентой и сформировать из них множество А C++
Программа определяет, сколько точек пересечения образуют по этим координатам окружности C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
virtuos553
 Аватар для virtuos553
48 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
31.01.2014, 15:03     По заданным координатам центра окружности и ее радиусу определить координаты точек пересечения окружности с осями координат. #2
проблема в геометрической реализации или с точки зрения плюсов?
Lefinator
0 / 0 / 0
Регистрация: 30.01.2014
Сообщений: 7
31.01.2014, 21:20  [ТС]     По заданным координатам центра окружности и ее радиусу определить координаты точек пересечения окружности с осями координат. #3
С плюсами проблема

Добавлено через 5 часов 11 минут
Собственно вот, что у меня есть сейчас (если код выглядит совсем ересью не обессудьте. Я совсем новичок )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
using namespace std;
int main ()
{
double x0, y0, r, y, x, y1, x1, x2, x3, y2 , y3;
cout<<"x0=";
cin>>x0;
cout<<"y0=";
cin>>y0;
cout<<"r=";
cin>>r;
y=y0+sqrt(pow(r,2)-pow(x0,2));
y1=y0-sqrt(pow(r,2)-pow(x0,2));
x2=x0+sqrt(pow(r,2)-pow(y0,2));
x3=x0-sqrt(pow(r,2)-pow(y0,2));
cout<<"x="<<0<<" "<<"y="<<y;
cout<<"\nx1="<<0<<" "<<"y1="<<y1;
cout<<"\nx2="<<x2<<" "<<"y2="<<0;
cout<<"\nx3="<<x3<<" "<<"y3="<<0;
system ("pause");
return 0;
}
Если все более менее правильно помогите, как то организовать код, что бы к примеру если R=x0 (и для y0 соответственно) то выводилась одна пара координат, а не две одинаковых и.т.д
А еще не учтено, что если вообще нет пересечения с о одной из осей или с обеими сразу. Вообщем помогите разобраться.

Добавлено через 41 минуту
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
#include "stdafx.h"
#include <iostream>
using namespace std;
int main ()
{
setlocale(LC_ALL, "Russian");
double x0, y0, r, y, x, y1, x1, x2, x3, y2 , y3;
cout<<"x0=";
cin>>x0;
cout<<"y0=";
cin>>y0;
cout<<"r=";
cin>>r;
y=y0+sqrt(pow(r,2)-pow(x0,2));
y1=y0-sqrt(pow(r,2)-pow(x0,2));
x2=x0+sqrt(pow(r,2)-pow(y0,2));
x3=x0-sqrt(pow(r,2)-pow(y0,2));
if (r==x0)
cout<<"x="<<0<<" "<<"y="<<y<<endl;
else if (r<x0)
cout<<"Нет точек пересечения с осью ординат"<<endl;
else 
cout<<"x="<<0<<" "<<"y="<<y<<"\nx1="<<0<<" "<<"y1="<<y1<<endl;
if (r==y0)
cout<<"\nx2="<<x2<<" "<<"y2="<<0<<endl;
else if (r<x0)
cout<<"Нет точек пересечения с осью абсцисс"<<endl;
else
cout<<"\nx2="<<x2<<" "<<"y2="<<0<<"\nx3="<<x3<<" "<<"y3="<<0<<endl;
system ("pause");
return 0;
}
Вот собственно Я разбросал все это дело по местам отпишитесь пожалуйста нормальный код или нет.
virtuos553
 Аватар для virtuos553
48 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
01.02.2014, 15:10     По заданным координатам центра окружности и ее радиусу определить координаты точек пересечения окружности с осями координат. #4
щас , скоро сяду за ноут, помогу с задачей

Добавлено через 12 часов 33 минуты
щас начал тестить вашу прогу, если ввести координаты 2,0 и радиус 1 , то она выведет , что нету точек пересечния не с ординат не с осью абсцисс, что неверно

Добавлено через 11 минут
И еще по поводу проги, я думаю прежде чем ты присваиваешь знаяения y,y1 и так далее, нужно сначала сделать проверку на то, чтобы корень был не отрицательный, а то ты уже тогда присвоешь непонятно что переменным и кампилятор заругается

Добавлено через 30 минут
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
45
46
#include<iostream>
using namespace std;
 
int main()
{
 
 
 
 
 
 
 
        setlocale(LC_ALL, "Russian");
        double x0, y0, r, y, x, y1, x1, x2, x3, y2, y3;
        cout << "x0=";
        cin >> x0;
        cout << "y0=";
        cin >> y0;
        cout << "r=";
        cin >> r;
        if ((sqrt(pow(r, 2) - pow(x0, 2))) > 0)
        {
 
            y = y0 + sqrt(pow(r, 2) - pow(x0, 2));
            y1 = y0 - sqrt(pow(r, 2) - pow(x0, 2));
            cout << "x=0" <<" " <<"y="<< y << "\n";
            cout << "x=0" <<" "<<"y="<< y1 << "\n";
 
        }
        else
            cout << "net peresech s y" << "\n";
        if ((sqrt(pow(r, 2) - pow(y0, 2))) > 0)
        {
 
            x2 = x0 + sqrt(pow(r, 2) - pow(y0, 2));
            x3 = x0 - sqrt(pow(r, 2) - pow(y0, 2));
            cout << "x=" << x2<<" " <<"y=0"<< "\n";
            cout << "x=" << x3 <<" "<< "y=0" << "\n";
 
        }
        else
            cout << "net peresech s x";
        
        system("pause");
        return 0;
    }
Вот исправленная версия вашей проги,проверяйте
Yandex
Объявления
01.02.2014, 15:10     По заданным координатам центра окружности и ее радиусу определить координаты точек пересечения окружности с осями координат.
Ответ Создать тему
Опции темы

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