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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
DAgot_
22 / 22 / 1
Регистрация: 03.01.2010
Сообщений: 68
#1

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

14.06.2010, 13:45. Просмотров 1279. Ответов 0
Метки нет (Все метки)

Использую: 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);
    }
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2010, 13:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Движение объекта (графика) (C++):

Графика в Си, немогу реализовать движение обЪекта - C++
Лыжника нарисовал но вот незнаю как осуществить его движение помогите плиз! #include &lt;stdio.h&gt; #include &lt;graphics.h&gt; #include...

Движение объекта по параболе - C++
Всем доброго времени суток, подскажите плиз как осуществить движение по параболе, или типо того У меня есть класс CEnemy в котором...

Движение объекта в случайном направлении - C++
Добрый день) Не могли бы вы помочь? Мне дано поле 20х20, и нужно смоделировать движение объекта (точка с координатами), которое движется...

Запрограммировать движение объекта - цифра 9 - C++
Помогите пожалуйста

Движение объекта, управление стрелками. Перестает работать при нажатии любой клавиши - C++
Здравствуйте. Пишу игру в танчики. Borland C++ 3.1 1. Сейчас реализовал само движение объекта с помощью стрелок. Проблема в том, что...

Класс "Окружность", три объекта изображающих движение - C++
разработав класс окружность, создать три объекта изображающих движение: а)расширяющейся (сужающейся) окружности с неподвижным центром ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2010, 13:45
Привет! Вот еще темы с ответами:

Движение объекта по XY. Как сделать чтобы программа считала FaceUnit как градусы - C++
Не пойму как сделать чтобы программа считала FaceUnit как градусы. При выводе на экран выдаёт подозрительные результаты. float...

Движение планеты в системе двойной звезды или движение трех тел - C++
программа должна выводить координаты движения звезд и планеты в файл (рисую в gnuplot). во-первых, не понимаю, почему выходит, что все...

Требуется ли при удалении объекта посредством delete указывать тип объекта? - C++
например, есть указателиvoid *p1; void *p2; есть VCL-объект TButton, есть самописный класс TMyClass; создаются объектыp1=new...

Как правильно вызывать функцию объекта из другой функции того же объекта? - C++
Доброго дня и ночи, уважаемые программисты! Существует некоторая проблема, на которую я наткнулся, решая задачу по программированию из...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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