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

Движение объекта (графика) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
DAgot_
 Аватар для DAgot_
22 / 22 / 1
Регистрация: 03.01.2010
Сообщений: 68
14.06.2010, 13:45     Движение объекта (графика) #1
Использую: Visual Studio 2008, TXLib(графическая библиотека).

Проблема: Нужно заставить двигаться объект так, чтобы при движении он изменялся в соответствии с заданной функцией. Конкретно в этой задаче объект должен искажаться косинуидально по горизонтали и синусоидально по вертикали. Проблема заключается в том, что надо реализовать функцию, которая могла бы искажать любой заданный объект.

Вопрос: Какие можете предложить идеи по алгоритму?

Код:
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
#include "TXLib.h"
#include "graphics.h"
#include <iostream>
using namespace std;
 
void main(){
 
    // Класс графика.
    class Graphic{
    public:
        float red, green, blue;
 
        // Конструктор по умолчанию.
        Graphic() : red(1.0), green(0.5), blue(0.25){}
        // Конструктор с тремя аргументами.
        Graphic(float r, float g, float b) : red(r), green(g), blue(b){}
        ~Graphic(){}
    };
 
    // Класс крест.
    class Cross : public Graphic{
    public:
        // Координаты горизонтальной линии.
        int GorX_1, VerX_1, GorX_2, VerX_2;
 
        // Координаты вертикальной линии.
        int GorY_1, VerY_1, GorY_2, VerY_2;
 
        // Конструктор по умолчанию.
        Cross() : GorX_1(0), VerX_1(100), GorX_2(50), VerX_2(100), GorY_1(25), VerY_1(10), GorY_2(25), VerY_2(130){}
        // Конструктор с четыремя параметрами.
        Cross(int gls, int gle, int vls, int vle, int glsy, int gley, int vlsy, int vley) : GorX_1(gls), VerX_1(gle), GorX_2(vls), VerX_2(vle), GorY_1(glsy), VerY_1(gley), GorY_2(vlsy), VerY_2(vley){}
        ~Cross(){}
    };
 
    txCreateWindow(800, 600, 1);
    // Создать объект.
    Cross KREST;
 
    for(int i=0; i<750; i++){
        // Задать цвет.
        txColor(KREST.red=1.0, KREST.green=0.5, KREST.blue=0.25);
        // Начертить вертикальную линию.
        txLine(KREST.GorY_1+i, KREST.VerY_1, KREST.GorY_2+i, KREST.VerY_2);
        // Задать цвет (стирающий).
        txColor(KREST.red=0.0, KREST.green=0.0, KREST.blue=0.0);
        // Начертить вертикальную линию (стирающую).
        txLine(KREST.GorY_1+i-1, KREST.VerY_1, KREST.GorY_2+i-1, KREST.VerY_2);
        
        // Задать цвет.
        txColor(KREST.red=1.0, KREST.green=0.5, KREST.blue=0.25);
        // Начертить горизонтальную линию.
        txLine(KREST.GorX_1=i, KREST.VerX_1, KREST.GorX_2+i, KREST.VerX_2);
        // Задать цвет (стирающий).
        txColor(KREST.red=0.0, KREST.green=0.0, KREST.blue=0.0);
        // Начертить горизонтальную линию (стирающую).
        txLine(KREST.GorX_1=0, KREST.VerX_1, KREST.GorX_2-KREST.GorX_2+i, KREST.VerX_2);
 
        Sleep(3);
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2010, 13:45     Движение объекта (графика)
Посмотрите здесь:

C++ Движение объекта, управление стрелками. Перестает работать при нажатии любой клавиши
Графика в Си, немогу реализовать движение обЪекта C++
Как правильно вызывать функцию объекта из другой функции того же объекта? C++
C++ Движение объекта по параболе
C++ Требуется ли при удалении объекта посредством delete указывать тип объекта?
При возврате объекта из функции пишет, что для объекта не определен констуктор копирования C++
Движение объекта по XY. Как сделать чтобы программа считала FaceUnit как градусы C++
Создание объекта в функции и возврат объекта из нее C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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