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

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

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

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

14.06.2010, 13:45. Просмотров 1271. Ответов 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);
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2010, 13:45     Движение объекта (графика)
Посмотрите здесь:

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

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

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

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

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

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

В строке первого объекта класса слово MAX длины заменить на слово MAX длины второго объекта класса - C++
Доброго времени суток! Есть задача: Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка....

Движение точки - C++
Очень нужна помощь с таким заданием: написать движение точки по ломанному пути( туда и обратно ) на входе: массив точек -...

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

Движение по массиву - C++
Нужно задать двумерный массив на С++ из нулей и единиц. Сделать так, чтобы нижний правый элемент двигался по массиву и добрался верхнего...

Движение в консоле - C++
подскажите как реализовать движение в консоле, мне нужна игра гоночки типа тетриса!

движение фигуры - C++
помогите пожалуйста.нужно сделать тест видеокарты-любая фигура(круг,квадрат,треугольник...)любого цвета,движущаяся по любой траектории


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

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

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