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

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

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

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

19.09.2010, 21:48. Просмотров 1353. Ответов 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 минут
* осей
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2010, 21:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Новые координаты точки / смена осей координат (C++):

Являются ли точки с задаными координатами симметричными относительно осей координат - C++
Помогите, пожалуйста! Составить алгоритм, который определяет, являются ли разные точки с координатами (X1,Y1) и (X2, Y2) симметричными ...

Вывести на экран координаты точки, наиболее удаленной от начала координат - C++
2. С помощью ГСЧ задать матрицу А(5,2), содержащую координаты точек на плоскости. Вывести ее на экран в прямоугольном виде. Вывести на...

Дано три точки . Определить расстояние от них до начала координат. Координаты ввести с клавиатуры - C++
Задача такая Дано три точки . Определить расстояние от них до начала координат. Координаты ввести с клавиатуры Вот мой код , но...

Найти координаты точки наиболее удалённой от начала координат. Если таких точек несколько, вывести первую найденную - C++
Прошу прощения. Тема закрыта (модератор, удалите) Сам нашел ошибку. :)

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

Даны координаты вершин треугольника и координаты некоторой точки внутри него - C++
Даны координаты вершин треугольника и координаты некоторой точки внутри него. Найти расстояние от данной точки до ближайшей стороны...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
20.09.2010, 00:21 #2
А в чём собсно вопрос ?
0
KuKu
1558 / 1036 / 78
Регистрация: 17.04.2009
Сообщений: 2,985
20.09.2010, 00:43 #3
ммм... тут по ходу переход к новым координатам не верен
Xновое=Xстарое*cos(альфа)+Yстарое*sin(альфа);
Yновое=-Xстарое*sin(альфа)+Yстарое*cos(альфа);
, вродь так если правильно прикинул

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

и еще судя по всему в math.h уже есть дифайн для числа пи M_PI
1
Василий-Робот
TECHNO
26 / 26 / 5
Регистрация: 04.11.2009
Сообщений: 366
20.09.2010, 07:30  [ТС] #4
Вопрос в том:
1) как вывести перед вычислениями значение углов А1, А2 и А3;
2) мой код глючит;
0
KuKu
1558 / 1036 / 78
Регистрация: 17.04.2009
Сообщений: 2,985
20.09.2010, 09:42 #5
1)
C++
1
2
А1 = atan(YO/XO);
printf("A1=%8.3f",A1);
, перед какими вычислениями ? У вас их много.(целых 9)
2) смотри текст ошибки и гугли ...
0
Mr.X
Эксперт С++
3049 / 1694 / 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.
0
Василий-Робот
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
Погуглил и ничего не нашел
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
21.09.2010, 16:52 #8
Цитата Сообщение от Василий-Робот Посмотреть сообщение
Зачем-то он подчеркивает строку 17
ошибка: stray '\192' in program
Погуглил и ничего не нашел
Он говорит, что встретил в 17 строке неизвестный символ, возможно в другой кодировке, с кодом 192.
У вас на машине стоит кодировка CP1251, в ней символ с кодом 192 - это умляут, который выглядит как большая буква "A" с двумя точками сверху.
Замените во всем коде символ "А" на букву "A" набранный вручную
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2010, 16:52
Привет! Вот еще темы с ответами:

Заданы координаты точки подвеса математического маятника A(xa, ya, za) и координаты одной из точек его наивысшего подъема B(xb, yb, zb). Найти координ - C++
помогите написать программу на с++ Добавлено через 37 секунд вот задача:Заданы координаты точки подвеса математического маятника...

Как найти координаты точки на прямой удаленной от заданной точки на х - C++
Добрый день! Помогите мне пожалуйста со следующей задачей. Дано 3 точки с координатами A(x1,y1), B(x2,y2), C(x3,y3) Нужно найти...

Найти координаты самой низкой точки траектории и другой наивысшей точки подъема - C++
помогите решить пожуйста очень надо...не используя некакие циклы и ветвленее..они тока на алгоритмы линейные задачки 1.Заданы...

Определить номер точки, через которую проходит окружность с центром в начале координат, внутрь которой попадают все оставшиеся точки. - C++
Имеется n точек на плоскости. Определить номер той, через которую проходит окружность с центром в начале координат, внутрь которой попадают...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.09.2010, 16:52
Ответ Создать тему
Опции темы

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