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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Василий-Робот
TECHNO
26 / 26 / 5
Регистрация: 04.11.2009
Сообщений: 366
#1

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

19.09.2010, 21:48. Просмотров 1325. Ответов 7
Метки нет (Все метки)

Точка имеет координаты XO и YO. Вычислить координаты точки после поворота осей координат относительно начала на угол A против часовой стрелки:
1) A = arctg (YO/XO);
2) A = pi;
3) A = arctg(YO/XO) - pi/2;
Также выведите значение угла A.

Мой код:

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
/* Òî÷êГ* èìååò êîîðäèГ*Г*ГІГ» ÕÎ, YO. Âû÷èñëèòü êîîðäèГ*Г*ГІГ» òî÷êè ïîñëå 
ïîâîðîòГ* îñåé êîîðäèГ*Г*ГІ îòГ*îñèòåëüГ*Г® Г*Г*Г·Г*Г«Г* 
Г*Г* óãîë ГЂ ïðîòèâ Г·Г*ñîâîé ñòðåëêè. */
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
#define pi 3.14159 
using namespace std;
int main()
{
    float A1, A2, A3;
    double XO;
    cout << "XO: ";
    cin >> XO;
    double YO;
    cout << "YO: ";
    cin >> YO;
         ГЂ1 = atan(YO/XO);
         ГЂ2 = pi; 
         A3 = atan(YO/XO)-pi/2;
               double X1 = XO*cos(A1);
               double Y1 = YO*cos(A1);
               double X2 = XO*cos(A2);
               double Y2 = YO*cos(A2);
               double X3 = XO*cos(A3);
               double Y3 = YO*cos(A3);
      printf("A1=%8.3f",A1);
      printf("A2=%8.3f",A2);
      printf("A3=%8.3f",A3);
cout << "X1 pri A=arctg(YO/XO) : " << X1 << endl;
cout << "Y1 pri A=arctg(YO/XO) : " << Y1 << endl;
cout << "X2 pri A=pi : " << X2 << endl;
cout << "Y2 pri A=pi : " << Y2 << endl;
cout << "X3 pri A=arctg(YO/XO)-pi/2 : " << X3 << endl;
cout << "Y3 pri A=arctg(YO/XO)-pi/2 : " << Y3 << endl;
             getch();
             return 0;
                              }
Добавлено через 13 минут
* осей
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2010, 21:48     Новые координаты точки / смена осей координат
Посмотрите здесь:

C++ Многократный ввод координат точки
Найти координаты самой низкой точки траектории и другой наивысшей точки подъема C++
C++ Определить номер точки, через которую проходит окружность с центром в начале координат, внутрь которой попадают все оставшиеся точки.
C++ Вывести на экран координаты точки, наиболее удаленной от начала координат
C++ Вычисления для каждой точки, заданной парой координат, третьей координаты по заданной формуле
Считывание координат точки C++
C++ Найти координаты точки наиболее удалённой от начала координат. Если таких точек несколько, вывести первую найденную
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
20.09.2010, 00:21     Новые координаты точки / смена осей координат #2
А в чём собсно вопрос ?
KuKu
1554 / 1032 / 75
Регистрация: 17.04.2009
Сообщений: 2,971
20.09.2010, 00:43     Новые координаты точки / смена осей координат #3
ммм... тут по ходу переход к новым координатам не верен
Xновое=Xстарое*cos(альфа)+Yстарое*sin(альфа);
Yновое=-Xстарое*sin(альфа)+Yстарое*cos(альфа);
, вродь так если правильно прикинул

ну и к слову: переход к новым коориднатам бы в функцию запихать, а не писать строчки перевода по 10 раз.

и еще судя по всему в math.h уже есть дифайн для числа пи M_PI
Василий-Робот
TECHNO
26 / 26 / 5
Регистрация: 04.11.2009
Сообщений: 366
20.09.2010, 07:30  [ТС]     Новые координаты точки / смена осей координат #4
Вопрос в том:
1) как вывести перед вычислениями значение углов А1, А2 и А3;
2) мой код глючит;
KuKu
1554 / 1032 / 75
Регистрация: 17.04.2009
Сообщений: 2,971
20.09.2010, 09:42     Новые координаты точки / смена осей координат #5
1)
C++
1
2
А1 = atan(YO/XO);
printf("A1=%8.3f",A1);
, перед какими вычислениями ? У вас их много.(целых 9)
2) смотри текст ошибки и гугли ...
Mr.X
Эксперт С++
3039 / 1684 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
20.09.2010, 10:06     Новые координаты точки / смена осей координат #6
Цитата Сообщение от KuKu Посмотреть сообщение
судя по всему в math.h уже есть дифайн для числа пи M_PI
В стандарте этого нет. Но в VS2008 написано:
The "Math Constants" are not defined in Standard C/C++. Therefore, in order to use them, you have to first define _USE_MATH_DEFINES and then include cmath or math.h as below.
Василий-Робот
TECHNO
26 / 26 / 5
Регистрация: 04.11.2009
Сообщений: 366
20.09.2010, 20:15  [ТС]     Новые координаты точки / смена осей координат #7
KuKu, перед всеми вычислениями

Код:
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
/* Òî÷êГ* èìååò êîîðäèГ*Г*ГІГ» ÕÎ, YO. Âû÷èñëèòü êîîðäèГ*Г*ГІГ» òî÷êè ïîñëå 
ïîâîðîòГ* îñåé êîîðäèГ*Г*ГІ îòГ*îñèòåëüГ*Г® Г*Г*Г·Г*Г«Г* 
Г*Г* óãîë ГЂ ïðîòèâ Г·Г*ñîâîé ñòðåëêè. */
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
#define pi 3.14159 
using namespace std;
int main()
{
        float XO, YO, A1, A2, A3, X1, X2, X3, Y1, Y2, Y3;
        printf("vvedite XO\n");
        scanf("%d",&XO);
        printf("vvedite YO\n");
        scanf("%d",&YO);
        ГЂ1 = atan(YO/XO);
printf("A1=%8.3f",A1);
         ГЂ2 = pi;
printf("A2=%8.3f",A2);
         ГЂ3 = atan(YO/XO)-pi/2;
printf("A3=%8.3f",A3);
               double X1 = XO*cos(A1);
               double Y1 = YO*cos(A1);
               double X2 = XO*cos(A2);
               double Y2 = YO*cos(A2);
               double X3 = XO*cos(A3);
               double Y3 = YO*cos(A3);
      printf("A1=%8.3f",A1);
      printf("A2=%8.3f",A2);
      printf("A3=%8.3f",A3);
cout << "X1 pri A=arctg(YO/XO) : " << X1 << endl;
cout << "Y1 pri A=arctg(YO/XO) : " << Y1 << endl;
cout << "X2 pri A=pi : " << X2 << endl;
cout << "Y2 pri A=pi : " << Y2 << endl;
cout << "X3 pri A=arctg(YO/XO)-pi/2 : " << X3 << endl;
cout << "Y3 pri A=arctg(YO/XO)-pi/2 : " << Y3 << endl;
             getch();
             return 0;
                              }
Зачем-то он подчеркивает строку 17
ошибка: stray '\192' in program
Погуглил и ничего не нашел
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2010, 16:52     Новые координаты точки / смена осей координат
Еще ссылки по теме:

Координаты чисел в матрице, где происходит смена знака C++
Дано три точки . Определить расстояние от них до начала координат. Координаты ввести с клавиатуры C++
Являются ли точки с задаными координатами симметричными относительно осей координат C++

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

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт C++
8280 / 3499 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
21.09.2010, 16:52     Новые координаты точки / смена осей координат #8
Цитата Сообщение от Василий-Робот Посмотреть сообщение
Зачем-то он подчеркивает строку 17
ошибка: stray '\192' in program
Погуглил и ничего не нашел
Он говорит, что встретил в 17 строке неизвестный символ, возможно в другой кодировке, с кодом 192.
У вас на машине стоит кодировка CP1251, в ней символ с кодом 192 - это умляут, который выглядит как большая буква "A" с двумя точками сверху.
Замените во всем коде символ "А" на букву "A" набранный вручную
Yandex
Объявления
21.09.2010, 16:52     Новые координаты точки / смена осей координат
Ответ Создать тему
Опции темы

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