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

Вращение прямоугольника вокруг оси - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Красно-черные деревья http://www.cyberforum.ru/cpp-beginners/thread562191.html
Помогите, пожалуйста. Запускаю программу и выводится только дерево, не понимаю, как с ним работать, почему нельзя проделать операцию добавления элемента? #include <stdio.h> #include <stdlib.h>...
C++ Трудность с компиляцией классов Здраствуйте. У меня возникла проблема при компиляции программы из классов с++. Программа заключается в написании системы управления лифтом. Классы полностью описывают все функции и связанны друг с... http://www.cyberforum.ru/cpp-beginners/thread562162.html
C++ таблица умножения от 1 до 100
Здравствуйте у меня возник такой вопрос. Вот я создал маленький программ который создает таблицу умножения с одного до ста. Но когда я запускаю программ мне показывает только последнюю часть таблицы....
Работа со списками. C++
Помогите, пожалуйста, с реализацией добавления в середину двунаправленного списка с головным элементом. Желательно, покажите код. Буду очень благодарен!
C++ Файлы http://www.cyberforum.ru/cpp-beginners/thread562128.html
Во входном файле содержится информация об каждом из n студентов некоторого вуза, разделённого пробелами: 〈фамилия〉 〈имя〉 〈отчество〉 〈пол〉 〈возраст〉〈курс〉, причем в фамилии – не более 12 букв,...
C++ Даны действительные числа a1,…,an. Даны действительные числа a1,…,an. Получить попарно различные целые j1,…,jn, такие, что 1≤k_j≤n,k=1,…,n, и aj1≥aj2≥⋯≥ajn. Воспользоваться методом: А)Сортировки прямым выбором; Б) «шейкерной»... подробнее

Показать сообщение отдельно
MrLOLS
14 / 14 / 1
Регистрация: 21.11.2010
Сообщений: 66

Вращение прямоугольника вокруг оси - C++

30.04.2012, 16:16. Просмотров 3168. Ответов 1
Метки (Все метки)

Программа должна вращать прямоугольник с заданными параметрами длины и ширины, вокруг оси.

Общий алгоритм приведен ниже.
Вопрос: как определить точки 2 и 4 исходя из уже имеющихся (1, 3).

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
#include <graphics.h>
#include <cmath>
 
void DrawRectangle(int x0, int y0, int a, int b, double angle, int color)
{
    int x1, y1, x2, y2, x3, y3, x4, y4;
    float d;
    d=sqrt((a*a)+(b*b)); // диагональ прямоугольника
 
    setcolor(color);
 
    x1 = round(x0 - (d/2) * cos(angle * M_PI / 180)); // находим точку x1 делением диагонали
    y1 = round(y0 - (d/2) * sin(angle * M_PI / 180)); // находим точку y1 делением диагонали
    
    x3 = round(x1 + d * cos(angle * M_PI / 180)); // находим точку x3 добавив к x1 диагональ
    y3 = round(y1 + d * sin(angle * M_PI / 180)); // находим точку y3 добавив к y1 диагональ
 
    x2 =?;
    y2 =?;
 
    x4 =?;
    y4 =?;
    
    line(x2, y2, x1, y1); // линия от точки 2 к 1
    line(x2, y2, x3, y3); // линия от точки 2 к 3
 
    line(x4, y4, x1, y1); // линия от точки 4 к 1
    line(x4, y4, x3, y3); // линия от точки 4 к 3
    
    line(x1, y1, x3, y3); // линия от точки 1 к 3 (диагональ)
    circle(x0,y0,2); // точка в центре диагонали
}
 
int main()
{
    initwindow(400, 400);
    int x0=200, y0=200, // центральная точка, вокруг которой идет вращение
    ang=0, // угол
    a=200, // длина прямоугольника
    b=3; // шырина прямоугольника
 
    setcolor(15);
    while(!kbhit())
    {
        DrawRectangle(x0, y0, a, b, ang, 15);
        delay(50);
        DrawRectangle(x0, y0, a, b, ang, 0);
        ang = ang + 2;
    }
}
0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru