Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 10.04.2013
Сообщений: 6
1

Работа с графикой

27.04.2013, 17:57. Просмотров 594. Ответов 0
Метки нет (Все метки)

Здравствуйте, помогите разобраться с программой?
в результате должны получиться различные графические объекты, перемещающиеся по прямым траекториям с разными случайными векторами скоростей. и возможность добавления и удаления объектов.
вот все, что есть. программа не работает.
Код
#include <stdlib.h>
#include <time.h>
#include <grx20.h>
#include <grxkeys.h>
struct TPoint{
 int x,y;
 int vx, vy;
 int color;
 TPoint(int ix,int iy,int icolor);
 virtual ~TPoint();
 virtual void Draw(int icolor);
 void Show();
 void Hide();
 void MoveXY(int ix, int iy);
};
struct TBox: public TPoint{
 int w,h;
 TBox(int ix,int iy,int icolor,int iw,int ih);
 virtual ~TBox();
 virtual void Draw(int icolor);
};
struct TCircle: public TPoint{
 int r;
 TCircle(int ix,int iy,int icolor,int ir);
 virtual ~TCircle();
 virtual void Draw(int icolor);
};
TPoint::TPoint(int ix,int iy,int icolor)
{
 x=ix; y=iy;
 vx=rand()%7-3;
 vy=rand()%11-5;
 color=icolor;
}
TPoint::~TPoint()
{
 Hide();
}
void TPoint::Draw(int icolor)
{
 GrPlot(x,y,icolor);
 GrPlot(x+1,y,icolor);
 GrPlot(x,y+1,icolor);
 GrPlot(x+1,y+1,icolor);
}
void TPoint::Show()
{
 Draw(color);
}
void TPoint::Hide()
{
 Draw(0);
}
void TPoint::MoveXY(int ix,int iy)
{
 Hide();
 if (ix>GrMaxX())
 x=ix-GrMaxX()-1;
 if (iy>GrMaxY())
 y=iy-GrMaxY()-1;
 //a=va; s=vs;
 x=ix; y=iy;
 Show();
}
TBox::TBox(int ix,int iy,int icolor,int iw,int ih):
 TPoint(ix,iy,icolor)
{
 w=iw; h=ih;
}
TBox::~TBox()
{
 Hide();
}
void TBox::Draw(int icolor)
{
 GrBox(x-w/50,y-h/50,x+(w-w/50),y+(h-h/50),icolor);
}
TCircle::TCircle(int ix,int iy,int icolor,int ir):
 TPoint(ix,iy,icolor)
{
 r=ir;
}
TCircle::~TCircle()
{
 Hide();
}
void TCircle::Draw(int icolor)
{
 GrCircle(x,y,r,icolor);
}
#define M 100
int main()
int N=10;
{TPoint *obj[M];
GrKeyType key;
 do{
  while (!GrKeyPressed()){
   GrSleep(20);
   obj[i]->vx;
   obj[i]->vy;
   for(i=0;i<N;i++){

    obj[i]->MoveXY(obj[i]->x+vx, obj[i]->y+vy;//x+rand()%7-3,obj[i]->vs+rand()%7-3);
}
  }
  key=GrKeyRead();
    switch(key){
case GrKey_Insert:
if (N<M){
    GrSetMode(GR_default_graphics,2,3);
 srand(time(0));
 int i;
 for(i=0;i<N;i++){
    switch (1 + rand()%3) {
  case 1:
  obj[N]=new TPoint(rand()%(GrMaxX()+1),rand()%(GrMaxY()+1),15);
  obj[N]->Show();
  break;
  case 2:
  obj[N]=new TBox(rand()%(GrMaxX()+1),rand()%(GrMaxY()+1),15,rand()%(GrMaxX()+1),rand()%(GrMaxY()+1));
  obj[N]->Show();
  break;
  case 3:
  obj[N]=new TCircle(rand()%(GrMaxX()+1),rand()%(GrMaxY()+1),15,rand()%(GrMaxX()+1));
  obj[N]->Show();
  break;
  default:; }}
N++; //количество объектов увеличивается
}
break;
case GrKey_Delete:
if (N>0){
delete obj[N-1];
N--; //количество объектов уменьшается
}
break;
}}}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2013, 17:57
Ответы с готовыми решениями:

Работа с графикой
Доброго времени суток ув. форумчане. Вобщем так, я еще совсем новичок, пытаюсь написать программу,...

Работа с графикой
Есть прога с вращением куба. Я ее сделал автоматически. Помогите, чтобы куб вращался стрелками с...

Работа с графикой
Здравствуйте, помогите с измненнем в программе...там по малому поменять, вместо &quot;РНА&quot; НУЖНО...

Работа с ГРАФИКОЙ
ПАМАГИТЕ ОЧ НАДО

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2013, 17:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Работа с графикой
Здравствуйте уважаемые,возникла такая вот проблема: Поставлена задача нарисовать круг в круге и...

Работа с графикой в СИ++
Здравствуйте, я хочу в Visual studio 2012 под windows организовать работу с графикой по аналогии с...

Работа с графикой
#include &quot;graphics.h&quot; #include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #include...

работа с графикой
подскажите код программы, которая выводит форму круга.


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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