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

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

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

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

12.12.2013, 23:25. Просмотров 716. Ответов 1
Метки нет (Все метки)

Получилось сделать для координаты одной точки, а как сделать для множества точек, через цикл или массив?

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
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <conio.h>
#include <math.h>
 
void main()
{
    setlocale(LC_ALL, "Russian");
    double r, fi, x, y;
    printf("Введите полярные координаты(Радиус и число ФИ):  \n");
    scanf_s("%lg", &r);
    scanf_s("%lg", &fi);
    
    x = r * cos(fi);
    y = r * sin(fi);
 
    printf("\n");
    printf("Декартовы координаты равны: ");
    printf("x = %lg;", x);
    
    printf(" y = %lg;", y);
 
 
    _getch();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2013, 23:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дано множество точек на плоскости, заданных полярными координатами. Получить декартовы координаты этих точек (C++):

задано множество n точек на плоскости своими координатами. - C++
задано множество n точек на плоскости своими координатами. найти и вывести на экран все точки, симметричные относительно координатных осей...

Дано множество точек на плоскости - C++
Пожалуйста, если не сложно, нужен алгоритм с объяснением!! Заранее спасибо)) Дано множество точек на плоскости,заданных полярными...

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

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

Дано множество точек на плоскости. Необходимо найти 4 точки (с максимальными и минимальными значениями x и y) - C++
Собственно, как я понял здесь нужна структура и динамический массив. но как это реализовать, я не знаю. Подскажите пожалуйста хотя бы как...

Задано множество точек в трехмерном пространстве. Найти минимум радиусов шаров с центрами в этих точках, содержащих ровно n точек этого множества - C++
Задано множество точек в трехмерном пространстве. Найти минимум радиусов шаров с центрами в этих точках, содержащих ровно n точек этого...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
13.12.2013, 12:35 #2
а как сделать для множества точек
Ну как то так наверное(не проверял)

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#include <iostream>
#include <cmath>
 
const float PI = 3.14;
 
class ITotal
{
      public:
             virtual void print(std::ostream & out) = 0;
};
 
class Polar : public ITotal
{
  private:
      float radius;
      float azimut;
  public:
         Polar(float r = 0, float a = 0) : radius(r), azimut(a){}
         
         void setRadius(float r){ radius = r; }
         void setAzimut(float a){ azimut = a; }
         
         float getRadius()const { return radius; }
         float getAzimut()const { return azimut; }
         
         void print(std::ostream & out){ out << "Radius: " << radius << "Azimut: " << azimut; }
         
         friend std::ostream & operator <<(std::ostream & out, Polar & p);
         friend std::istream & operator >>(std::istream & in, Polar & p);
         Polar & operator =(Polar & p)
         {
                radius = p.getRadius();
                azimut = p.getAzimut();
                return *this;
         }
};
 
class Decart : ITotal
{
  private:
      float x;
      float y;
  public:
         Decart(float _x = 0, float _y = 0) : x(_x), y(_y){}
         
         void setX(float _x){ x = _x; }
         void setY(float _y){ y = _y; }
         
         float getX()const { return x; }
         float getY()const { return y; }
         
         void print(std::ostream & out){ out << "X: " << x << "Y: " << y; }
         
         friend std::ostream & operator <<(std::ostream & out, Decart & d);
         friend std::istream & operator >>(std::istream & in, Decart & d);
         Decart & operator =(Decart & d)
         {
                x = d.getX();
                y = d.getY();
                return *this;
         }
};
 
class Convert
{
      private:
             Convert(){}
             enum STATUS{NE, TO, TH, FO, FI, SX};
             STATUS statusPolar(Decart * d)
             {
                if(d->getX() > 0)
                 return NE;
                else if(d->getX() < 0 && d->getY() >= 0)
                 return TO;
                else if(d->getX() < 0 && d->getY() < 0)
                 return TH;
                else if(d->getX() == 0 && d->getY() > 0)
                 return FO;
                else if(d->getX() == 0 && d->getY() < 0)
                 return FI;
                else
                 return SX;
             }
      public:
             static Decart toDecart(const Polar & p)
             {
                 return Decart(p.getRadius() * cos(p.getAzimut()), p.getRadius() * sin(p.getAzimut())); 
             }
             
             static Polar toPolar(const Decart & d)
             {
              STATUS status = statusPolar(&d);
              switch(status)
              {
                case NE :
                 return Polar((d.getX() + d.getY()), atan(d.getX() / d.getY()); break; 
                case TO :
                 return Polar(d.getX() + d.getY(), atan(d.getX() / d.getY() + PI); break;
                case TH :
                 return Polar(d.getX() + d.getY(), atan(d.getX() / d.getY() - PI); break;
                case FO :
                 return Polar(d.getX() + d.getY(), PI / 2); break;
                case FI :
                 return Polar(d.getX() + d.getY(), PI / 2 * -1); break;
                case SX :
                 return Polar(d.getX() + d.getY(), 0); break;
              }
             }
};
 
int main()
{
  const size_t SIZE = 10;
      Polar p[SIZE];
      Decart d[SIZE];
      
      for(int i = 0; i < SIZE; ++i)
         std::cin >> p[i];
         
      for(int i = 0; i < SIZE; ++i)
         d[i] = Convert::toDecart(p[i]);
         
      for(int i = 0; i < SIZE; ++i)
         std::cout << d[i];
 
      system("PAUSE");
    
   return 0;
}
 
std::ostream & operator <<(std::ostream & out, Polar & p)
{
        p.print(out);
        return out;
}
 
std::istream & operator >>(std::istream & in, Polar & p)
{
        float tmp;
        std::cout << "Input radius: "; in >> tmp;  p.setRadius(tmp);
        std::cout << "Input azimut: "; in >> tmp;  p.setAzimut(tmp);      
}
 
std::ostream & operator <<(std::ostream & out, Decart & d)
{
        d.print(out);
        return out;
}
 
std::istream & operator >>(std::istream & in, Decart & d)
{
        float tmp;
        std::cout << "Input X: "; in >> tmp; d.setX(tmp);
        std::cout << "Input Y: "; in >> tmp; d.setY(tmp);
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2013, 12:35
Привет! Вот еще темы с ответами:

Дано несколько точек с целочисленными координатами. Определить максимальное количество точек из них, лежащих на одной прямой. Если можно напечатать н - C++
Я подумала, что нужно будет написать класс Point. Немного написала, и остановилась на методе, который проверяет принадлежность точки...

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

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

На плоскости заданы множество точек А и множество прямых B - C++
На плоскости заданы множество точек А и множество прямых B. Найти две такие различные точки из А, чтобы проходящая через них прямая была...


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

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

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