Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2009, 16:43   #1
Streb
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 76
По умолчанию Анимация в С++

Привет всем! мне необходимо написать программу движения точки по траектории эллипса вокруг неподвижной точки в проге С++! помогите пожалуйста мне написать эту анимацию! Заранее спасибо...
Streb вне форума Ответить с цитированием
Старый 03.06.2009, 17:08   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Во-первых, указывайте тип приложения (консоль, гуи).
Во-вторых, показывайте свои наработки и задавайте конкретные вопросы.
Иначе тема закроется.

Формулы смотрите здесь:
http://ru.wikipedia.org/wiki/Эллипс#...BD.D0.B8.D0.B5
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.06.2009, 17:24   #3
Streb
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 76
По умолчанию

Я написал программу движения шарика по прямой. Теперь мне надо тоже самое движение, но по траектории эллипса с неподвижным шариком в центре!

Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x,y;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
PaintBox1->Canvas->Ellipse(x,y,x+50,y+50);
PaintBox1->Canvas->Pen->Color=clBlack;
x++;
y++;
PaintBox1->Canvas->Ellipse(x,y,x+50,y+50);
PaintBox1->Canvas->Pen->Color=clBtnFace;
if(x>PaintBox1->Width)
{x=PaintBox1->Left;
y=PaintBox1->Top;}
if(y>PaintBox1->Height)
{y=PaintBox1->Top;
x=PaintBox1->Left;}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
x=PaintBox1->Left;
y=PaintBox1->Top;
Form1->Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Timer1->Enabled=false;        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Form1->Timer1->Enabled=true;        
}
Модератор: аттачи для исходников запрещены. Используйте тег CODE!

Последний раз редактировалось Sazary; 03.06.2009 в 17:26.
Streb вне форума Ответить с цитированием
Старый 03.06.2009, 17:37   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну вот так, например:
Код:
int x,y;
int a,b,cntrx,cntry;
double alpha;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
PaintBox1->Canvas->Pen->Color=clBtnFace;
PaintBox1->Canvas->Ellipse(x-25,y-25,x+25,y+25);
x = cntrx + floor(a*cos(alpha));
y = cntry + floor(b*sin(alpha));

PaintBox1->Canvas->Pen->Color=clBlack;
PaintBox1->Canvas->Ellipse(x-25,y-25,x+25,y+25);


alpha += 0.1;
if(alpha>=2*M_PI) alpha = 0;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
x=PaintBox1->Width/2;
y=PaintBox1->Height/3;
a=100;
b=100;
alpha=0;
cntrx = PaintBox1->Width/2;
cntry = PaintBox1->Height/2;
Form1->Timer1->Enabled=true;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.06.2009, 17:45   #5
Streb
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 76
По умолчанию

слушай, он мне выдает ошибку в
x = cntrx + floor(a*cos(alpha));
Streb вне форума Ответить с цитированием
Старый 03.06.2009, 17:48   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Streb
слушай, он мне выдает ошибку в
У ошибки есть название и описание.

Впрочем, я догадываюсь. Файл math.h подключите.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.06.2009, 17:56   #7
Streb
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 76
По умолчанию

Вообщем он пишет это:
[C++ Error] Unit1.cpp(26): E2268 Call to undefined function 'floor'
[C++ Error] Unit1.cpp(26): E2268 Call to undefined function 'cos'
[C++ Error] Unit1.cpp(27): E2268 Call to undefined function 'sin'
[C++ Error] Unit1.cpp(34): E2451 Undefined symbol 'M_PI'
Streb вне форума Ответить с цитированием
Старый 03.06.2009, 18:01   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Streb
Вообщем он пишет это:
Читайте вторую часть предыдущего поста. Про math.h
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.06.2009, 18:10   #9
Streb
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 76
По умолчанию

Скажи пожалуйста, а ты не знаешь как сделать чтоб в центре этой анимации был неподвижный шарик?
Streb вне форума Ответить с цитированием
Старый 03.06.2009, 18:15   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Скажи пожалуйста, а ты не знаешь как сделать чтоб в центре этой анимации был неподвижный шарик?
Нарисуйте в центре неподвижный шарик.
Код:
PaintBox1->Canvas->Ellipse(cntrx-25,cntry-25,cntrx+25,cntry+25);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
анимация shad0w Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 13.12.2020 11:02
анимация Juffin Общие вопросы Delphi 2 26.05.2009 20:04
анимация в с++ True_girl Помощь студентам 7 01.03.2009 18:57
Анимация BuTeK1 Паскаль, Turbo Pascal, PascalABC.NET 0 19.01.2009 00:30
анимация волшебная Общие вопросы Delphi 0 17.12.2008 21:01