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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 10:07   #1
Attenti_ON
Новичок
Джуниор
 
Регистрация: 15.10.2008
Сообщений: 2
По умолчанию [C++ Builder] движени колеса по наклонной плоскости

Добрый день!

Мне нужно написать программу, имитирующую движение колеса со спицами по наклонной поверхности.

Вот мой код.

TForm1 *Form1;
Код:
const int n=10;
float speed=M_PI/40;
float angl=0;;
int R;
int dx;
int dy;
TPoint centr(int x,int y);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{  
    int width=Form1->Image1->Width/10;
    R = width;
    TPoint centr(0+R,0+R);
    dx=2;
    dy=1;
    Timer1->Interval=30;
    Timer1->Enabled = true;
    Image1->Canvas->Rectangle(Image1->ClientRect);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
   if (angl>2*M_PI)
   {
       angl-=2*M_PI;
   }
   angl+=speed;
TCanvas *canv=Form1->Image1->Canvas;
int width=Form1->Image1->Width/10;
int R=width;
//центр окружности
TPoint centr(0+R,0+R);
//стираем колесо
canv->Pen->Color = clWhite;
canv->Ellipse(centr.x-R,centr.y-R,centr.x+R,centr.y+R);
//спицы
for (int i=0; i < n; i++)
{
canv->MoveTo(centr.x,centr.y);
canv->LineTo(cos(M_PI/n*i*2+angl)*R+centr.x,sin(M_PI/n*2*i+angl)*R+centr.y);
}
//приращение по х и у
centr.x+=dx;centr.y+=dy;
//рисуем колесо в новом месте
canv->Pen->Color = clRed;
canv->Ellipse(centr.x-R,centr.y-R,centr.x+R,centr.y+R);
//спицы в новом месте
for (int i=0; i < n; i++)
{
canv->MoveTo(centr.x,centr.y);
canv->LineTo(cos(M_PI/n*i*2+angl)*R+centr.x,sin(M_PI/n*2*i+angl)*R+centr.y);
}
}

В результате колесо со спицами крутится на одном месте, не могу понять, почему оно не движется по наклонной. Подскажите, пожалуйста, как это правильно реализовать.
Attenti_ON вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
цилиндр по наклонной плоскости Михаил1800 Фриланс 5 12.10.2010 17:00
Программа "Правила дорожного движени" в Delphi Len4i]{ Помощь студентам 10 04.06.2010 01:20
Движение колеса MaryBlondi Помощь студентам 1 11.05.2010 22:50
Тело по наклонной Lemo Помощь студентам 0 09.04.2009 15:50
использование колеса мыши Bayazet Общие вопросы Delphi 8 27.01.2009 14:39