Модераторы: Rickert, Alexeis, BorisVorontsov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Borland C++]Графика/Анимация. 
:(
    Опции темы
Mariya
Дата 27.10.2006, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



Проблема все еще не решена....
PM MAIL   Вверх
Mariya
Дата 5.11.2006, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



Все, помощи не ждать?
PM MAIL   Вверх
Гарри
Дата 5.11.2006, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 11.10.2006
Где: Германия

Репутация: 1
Всего: 1



Не пойму .. график функции это одно, а анимация другое. Анимация такого рода -  даже двумерная, это, по моему работа на весь семестр. А если трёхмерная, то и на все каникулы.
Может быть нужна какая то простая кривая движения?
PM MAIL   Вверх
Mariya
Дата 6.11.2006, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



Гарри, да, мне нужен просто график функции, 2х мерный, на уроке делали что то типа синусоидов, ну вы поняли, что необходимо:-)
PM MAIL   Вверх
anotherY
Дата 20.2.2007, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 20.2.2007

Репутация: нет
Всего: нет



Mariya, может вам и не стоит разбираться с выводом на экран .gif файлов? Просто как вариант, взять что-нибудь вроде Borland C++ v. 3.1, подлючить graphics.h, графику 640x480 16 цветов стандартную и рисовать в нем непосредственно, используя поточечную прорисовку графика?
PM MAIL   Вверх
serglight
Дата 23.10.2007, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 23.10.2007

Репутация: нет
Всего: нет



Rickert вышли пожалуйста нуждающемуся на ящик литературку! Я тоже как начинающий столкнулся с рисованием графиков в С++. Даже и незнаю с чего начинать! Куда смотреть и чего нажимать. Скинь пожалуйста и на мой почтовый ящик если тебе не трудно. smile  
Премного ,лагодарен за помощь!
[email protected]

PM MAIL   Вверх
Rickert
Дата 24.10.2007, 04:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Люди, вас не поймёшь: то вам надо человека со стулом, то теперь графики. Какие каникулы?
Рисование графика - этож 10 - 15 минут работы, если есть уравнение графика.
Значит так, не ленемся и используем google.com.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Lexa007
Дата 10.9.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.3.2007

Репутация: нет
Всего: нет



Примерчик хороший
Писано в С++ Builder 2007. На форме TButton, TTimer и TImage, с именами по умолчанию.
Код

//---------------------------------------------------------------------------

#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Main_SimplAnimation.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TAnime *Anime;
//---------------------------------------------------------------------------
short int cadr = 0;           // номер кадра
short int H=30;               // длина ноги и руки
short int Xpos = 3 * H;       // координата опорной ноги
short int Ypos = 120;         // "земля"
short int Hmen = 30;          // высота тела
short int Rhead = 10;         // радиус головы
short int revers = 1;         // направление движения
short int L = H * 1.41;       // длина ноги
short int Ncadr=16;           // число кадров на шаг
//---------------------------------------------------------------------------
__fastcall TAnime::TAnime(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TAnime::Draw()
{
    float Angl = M_PI/4*(1+(2.*cadr)/(Ncadr-1));
    short int Yb = Ypos-H*sin(Angl);
    short int Yt = Yb-Hmen;
    short int X = Xpos-revers*H*cos(Angl);

    Image1->Canvas->MoveTo(X-(Xpos-X),Ypos);
    Image1->Canvas->LineTo(X,Yb);        // нога
    if (cadr != Ncadr / 2-1)  Image1->Canvas->LineTo(Xpos,Ypos); // другая нога
    Image1->Canvas->MoveTo(X,Yb);
    Image1->Canvas->LineTo(X,Yt);        // туловище
    short int X1 = X - revers * (Yb-Ypos);
    Image1->Canvas->MoveTo(X1,Yt+5-(Xpos-X));
    Image1->Canvas->Ellipse(X1-Rhead / 2,Yt+5-(Xpos-X)-Rhead / 2,X1+Rhead / 2,Yt+5-(Xpos-X)+Rhead / 2);
    Image1->Canvas->LineTo(X,Yt+5);      // рука
    if (cadr != Ncadr / 2-1)
    {
        Image1->Canvas->Ellipse(X1-Rhead / 2,Yt+5+(Xpos-X)-Rhead / 2,X1+Rhead / 2,Yt+5+(Xpos-X)+Rhead / 2);
        Image1->Canvas->LineTo(X1,Yt+5+(Xpos-X)); // другая рука
    }
    Image1->Canvas->Ellipse(X-Rhead,Yt-2*Rhead,X+Rhead,Yt);
    Image1->Canvas->Rectangle(X-Rhead,Yt-2*Rhead-4,X+Rhead,Yt-2*Rhead-1);  // шляпа
}
//---------------------------------------------------------------------------
void __fastcall TAnime::Button1Click(TObject *Sender)
{
    DoubleBuffered = true;
    Timer1->Enabled = ! Timer1->Enabled;
}
//---------------------------------------------------------------------------
void __fastcall TAnime::FormCreate(TObject *Sender)
{
    Image1->Canvas->MoveTo(0,Ypos+3);
    Image1->Canvas->Pen->Width = 4;
    Image1->Canvas->LineTo(Image1->ClientWidth,Ypos+3); // земля
    Image1->Canvas->Pen->Width = 1;
    Image1->Canvas->Pen->Mode = pmNotXor;
    Timer1->Interval = 600 / Ncadr;
    Draw();
}
void __fastcall TAnime::Timer1Timer(TObject *Sender)
{
     Draw();
     cadr = (cadr+1) % Ncadr;
     if (cadr == 0)
        if ((Xpos < Image1->Picture->Width-revers*3*H) && (Xpos>-revers*3*H))
            Xpos += revers*H*1.41;
        else revers = -revers;
     Draw();
}
//---------------------------------------------------------------------------

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.