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

Поворот фигуры на заданный угол - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Алгоритм шифрования ГОСТ 28147-89 http://www.cyberforum.ru/cpp-beginners/thread1127876.html
Всем привет, реализую алгоритм данный алгоритм шифрования, хотелось бы прояснить пару моментов. Не совсем понимаю, как считывать файлы: массивом или это надо всё в одну переменную? Вот, сделал такой пример, но мне кажется, что не совсем правильно while (n > 0) { // n - количество символов в файле as = 0; // переменная, в которую будет записываться (назвал рандомно...
C++ Создание шаблонной функции для работы с массивами разных типов данных Здравствуйте. Столкнулся со следующей проблемой: не могу написать шаблонную функцию подсчета суммы элементов в массиве между первым и последним отрицательными элементами. Нужно, чтобы функция умела работать с массивами разных типов данных: int, float, double(считала сумму чисел между первым отрицательным и последним отрицательным элементами). Программа должна быть модульной. код соотвествующих... http://www.cyberforum.ru/cpp-beginners/thread1127859.html
C++ Параллельное программирование, MPI. Подсчитать количество вхождений в массив символа "А"
Ребята, очень нужна помощь! Никогда не сталкивалась с MPI. Помогите пожалуйста с решение задания! Задание 1 - выполняется первым процессом, задача 2 - вторым. Элементы массивов генерируются случайным образом. 1. Создать символьный массив данных на 100 элементов. Подсчитать количество вхождений в массив символа "А".
C++ Написать методы, позволяющие вычислить след матрицы, детерминант, транспонировать, обратить матрицу
Нужно написать "Матрица". Перегрузить операторы сложения, вычитания, умножения. Написать методы, позволяющие вычислить след матрицы, детерминант, транспонировать, обратить матрицу. Вот что получилось пока. Почему не работает множественное присваивание c = a = a; и c = a * b; Помогите исправить ошибки! Проблемные строки я отметил ниже. #include <iostream> class matrix {
C++ В каждой строке матрицы элемент, лежащий на главной диагонали, заменить суммой ранее расположению элементов http://www.cyberforum.ru/cpp-beginners/thread1127822.html
в каждой строке матрицы F(k,k) элемент ,лежащий на главной диагонали, если это простое число заменить суммой ранее расположению элементов
C++ Удалить из массива числа, которые являются полным квадратом и имеют нечетную сумму цифр Помогите пожалуйста, очень нужно! Разработать программу на языке программирования С++. Дан массив из N целых чисел, где N<=16, каждое число в диапазоне от –32000 до 32000. Удалить из массива числа, которые являются полным квадратом и имеют нечетную сумму цифр. Примечание: Массив перед обработкой и после обработки распечатать в виде подробнее

Показать сообщение отдельно
_Лето_
1 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 68
23.03.2014, 23:15     Поворот фигуры на заданный угол
Сама задача выглядит так: Есть несколько видов фигур: треугольник, квадрат и круг. Нужно осуществить поворот этих фигур. Т.е. пользователь задает точку на какой-либо из этих фигур и угол на который должен осуществиться этот поворот. И фигура графически должна повернуться.

У меня была уже подобного рода задача, только там мне нужно было найти площади этих фигур, но как сделать графический поворот я без понятия. Прошу помочь мне с этой задачей.

Вот предыдущий код с площадями:

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
#include <iostream>
#include <cmath>
using namespace std;
class Figure
{
    public:
    void VvodKoord(unsigned int v)
{
vershina = v;
px = new int[v];
py = new int[v];
cout<< "vvedite koordinati" << endl;
for (int i = 0; i < v; i++)
{   cout << "x" << i + 1 << "= ";
    cin >>px[i];
    cout << "y" << i + 1 << "= ";
    cin >> py[i];
}
}
void Vivod()
{
for (int i = 0; i < vershina; i++)
cout <<"x"<<i++<<"="<<px[i]<<"y"<<i++<<"="<<py[i]<<endl;
}
void Ploch()
{
if (vershina > 2)
{
double s = px[vershina - 1] * py[0] - px[0] * py[vershina - 1];
for (int i = 1; i < vershina; i++)
s = s + (px[i] * py[i++] - px[i++] * py[i]);
if (s >= 0)
cout << "Plochad figuri:" << endl << "S=" << s / 2 << endl <<endl;
else
cout << "Plochad figuri:" << endl << "S=" << s*(-1) / 2<< endl << endl;
}
 
else
cout << "eto ne mnogougolnik" << endl << endl;
 
delete[] px;
delete[] py;
}
 
private:
int* px;
int* py;
unsigned int vershina;
 
};
 
class Okr : public Figure
{
public:
 
Okr()
{
VvodKoord(0);
}
 
void VvodRad()
{
cout << "vvedite radius" << endl << "R = ";
cin>> radius;
}
 
void PlochOkr()
{
double s = 2 * 3.14*radius*radius;
cout << "Plochad okrujnosti:" << endl << "S = " << s << endl << endl;
}
 
private:
int radius;
};
 
int main()
{
for (;;)
{
int a;
cout << "1 - treugolnik" << endl << "2 - kvadrat" << endl << "3 - okrujnost" << endl << "4 - vihod" << endl << endl;
cin >> a;
 
if (a == 1)
{
Figure treug;
cout << "Treugolnik" << endl;
treug.VvodKoord(3);
treug.Ploch();
}
 
if (a == 2)
{
Figure kvadrat;
cout << "Kvadrat"<< endl;
kvadrat.VvodKoord(4);
kvadrat.Ploch();
}
 
if (a == 3)
{
Okr okrujnost;
cout << "Okrujnost" << endl;
okrujnost.VvodRad();
okrujnost.PlochOkr();
}
 
if (a == 4)
break;
}
return 0;
}
Можно ли из этой проги сделать то, что мне нужно?

Вот, как я понял, формула поворота:
C++
1
2
x=x*sin(a) + y*cos(a);
y=x*cos(a) - y*sin(a);
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru