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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2010, 11:06   #1
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию фигура должна передвигаться по экрану и отбиваться от стенок

Я пишу на devc + + с использованием <graphics.h>. Как добавить этот хедер + либу можно посмотреть здесь http://www.uniqueness-template.com/devcpp/. Если можно опишите метод как сделать чтобы фигура передвигалась по экрану и отбивалась от стенок. Сейчас мой код выглядит так:
Код:
 #include <graphics.h>

bool napram = true;
int x,y;
int mx=1024,my=768,mxr=300,myr=150,col=1,bk=1,m=10,n=1;
  void getcenter();
  void move();
  void moveall();
  int main() 
  { 
      initwindow(mx,my,"Трататтататата"); 
      getcenter(); 
      setfillstyle( 5,1);  
    while (!ismouseclick(WM_LBUTTONDBLCLK))
        {
                                        
            
            setfillstyle( 5,x+10);                                
            
            setcolor(x+10);
            setbkcolor(WHITE);
            
            ellipse( x, y, 100, 100,mxr, myr);
         
            circle( x, y, 125 );
     
            sector( x, y, 460, 280, 100, 100 );
        //move();
           moveall();
            if (ismouseclick(WM_LBUTTONDOWN)) { getmouseclick(WM_LBUTTONDOWN,x,y); } 
          clearviewport();
             
        }             
      closegraph();        
      return 0; 
 }     
      
       void getcenter()
            {
                       x = getmaxx() /2;
                       y = getmaxy() /2;
            }
  
       void move()
            {
                       delay(15);
                       x+=3;
                       delay(15);
                       y+=4;
                       delay(15);
                       clearviewport();
            }
         
        void moveall()
            {
                        
                      delay(15);
                      x+=3;
                       delay(15);
                       y+=4;
                       delay(15);
                       //if (y>my-myr) y-=4; 
                       //if (x > mx -mxr) x-=3;
                       clearviewport();
            }
p.s. mxr - радиус наибольшего елипа по x, myr - аналогично только по по y
rUs_LAN вне форума Ответить с цитированием
Старый 06.02.2010, 15:51   #2
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию рЕ

просьба модераторов закрыть тему по ненадобности
кому будет интересно
Код:
 #include <graphics.h>
 #include <math.h>

bool napram = true;
int x,y;
int mx=1024,my=768,mxr=300,myr=150,col=1,bk=1,sx=3, sy=4;
  void getcenter();
  void move();
  void moveall();
  int main() 
  { 
      initwindow(mx,my,"Трататтататата"); 
      getcenter(); 
      setfillstyle( 5,1);  
    while (!ismouseclick(WM_LBUTTONDBLCLK))
        {
                                        
            
            setfillstyle( 5,x+10);                                
            
            setcolor(x+10);
            setbkcolor(WHITE);
            
            ellipse( x, y, 100, 100,mxr, myr);
         
            circle( x, y, 125 );
     
            sector( x, y, 460, 280, 100, 100 );
        //move();
           moveall();
            if (ismouseclick(WM_LBUTTONDOWN)) { getmouseclick(WM_LBUTTONDOWN,x,y); } 
          clearviewport();
             
        }             
      closegraph();        
      return 0; 
 }     
      
       void getcenter()
            {
                       x = getmaxx() /2;
                       y = getmaxy() /2;
            }
  
       void move()
            {
                       delay(15);
                       x+=3;
                       delay(15);
                       y+=4;
                       delay(15);
                       clearviewport();
            }
         
        void moveall()
            {
                      delay(15);
                      x+=sx;
                      delay(15);
                      y+=sy;  
                      delay(15);
                     if (x>mx-mxr) sx=-sx;
                     if (y>my-myr) sy = -sy;
                     if (x<mxr) sx = abs(sx);
                     if (y<myr) sy = abs(sy);
                       clearviewport();
            }
Рабочий код
rUs_LAN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как с помощью формы календарь, передвигаться по листам книги Excel Deni55 Microsoft Office Excel 3 15.04.2009 12:57
Помогите!!! Паскаль, графическая фигура!!!! 311 Помощь студентам 4 24.01.2009 03:39
Отражение рисунка от стенок Надежда.. Мультимедиа в Delphi 14 20.12.2008 23:24
Фигура не поворачивает на клавишах! heavenly Мультимедиа в Delphi 8 10.11.2008 21:01
движение изображения с зеркальным отображением от стенок nev Помощь студентам 6 11.06.2007 21:38