Animacija

Animacija se može napraviti veoma jednostavno. Dovoljno je objekat koji je postavljen, pre ponovnog pozicioniranja obrisati.

Pr1. Napravite program koji crta pravougaonik od jedne do druge pozicije, pri čemu se y koordinata objekta ne menja?

Rešenje:

#include <cstdlib>
#include <iostream>
#include <winbgim.h>
using namespace std;

int main()
{
int gdriver=9;
int gmode=2;
initgraph(&gdriver,&gmode,““);
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
int x,y;
for (x=50;x<600;x=x+1)
{
cleardevice();
rectangle(x, y,x+60,y+60);
}
getch();
return EXIT_SUCCESS;
}

Pr2. Napravite program koji omogućava kretanje kruga po različitim putanjama?

Rešenje:

a)

#include <cstdlib>
#include <iostream>
#include <winbgim.h>
using namespace std;

int main()
{
int gdriver=9;
int gmode=2;
initgraph(&gdriver,&gmode,““);
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
int x,y;

for (y=10;y<400;y=y+30)
{
for (x=10;x<600;x=x+1)
{
cleardevice();
circle(x, y,20);
}
}
getch();
return EXIT_SUCCESS;
}

slika

Krug se kreće sleva prema desno kroz celog grahičkog ekrana.

b)

#include <cstdlib>
#include <iostream>
#include <winbgim.h>
using namespace std;

int main()
{
int gdriver=9;
int gmode=2;
initgraph(&gdriver,&gmode,““);
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
int x,y;

for (x=10;x<600;x=x+30)
{
for (y=10;y<400;y=y+1)
{
cleardevice();
circle(x, y,x+10);
}
}
getch();
return EXIT_SUCCESS;
}

c)

#include <cstdlib>
#include <iostream>
#include <winbgim.h>
using namespace std;

int main()
{
int gdriver=9;
int gmode=2;
initgraph(&gdriver,&gmode,““);
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
int x,y;

for (x=10;x<600;x=x+30)
cleardevice();
{

for (y=10;y<400;y=y+1)
{

circle(x, y,x);
}
}
getch();
return EXIT_SUCCESS;

d)

#include <cstdlib>
#include <iostream>
#include <winbgim.h>
using namespace std;

int main()
{
int gdriver=9;
int gmode=2;
initgraph(&gdriver,&gmode,““);
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
int x,r;

for (x=30;x<610;x=x+60)
{
for (r=5;r<31;r=r+5)
{

delay(100);
// cleardevice();
circle(x, 24,r);
}

}
getch();
return EXIT_SUCCESS;
}

Krug koji menja poluprečnik,  kreće se sleva prema desno, pri čemu y koordinata je fiksna, menja se samo x; Evo kako izgleda slika kada ne bi brisali objekte

slika

Pr3.

a)  Animacija koja od donje pozicije ekrana kreće krug koji nakon dolaska do određenu poziciju menja poluprečnik?

Rešenje:

#include <cstdlib>
#include <iostream>
#include <winbgim.h>
using namespace std;

int main()
{
int gdriver=9;
int gmode=2;
initgraph(&gdriver,&gmode,““);
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
int x,r;

for (x=465;x>100;x=x-1)
{
cleardevice();
circle(320, x,10);
}
for (r=10;r<91;r=r+1)
{

delay(100);
cleardevice();
circle(320, x,r);
}

getch();
return EXIT_SUCCESS;
}

Kada ne bi brisali predhodno nacrtani objekat dobili bi sliku slika

Pr4.   Napravite animaciju koja se dešava korišćenjem tastera a-levo, f -desno, c-gore, v-dole

Rešenje:

#include <cstdlib>
#include <iostream>
#include <winbgim.h>
using namespace std;

int main()
{
int gdriver=9;
int gmode=2;
initgraph(&gdriver,&gmode,““);
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
int x=290;
int y=220;
char odgovor=’d’;

while (odgovor!=’k’)
{
rectangle(x,y,x+60,y+5);
odgovor=getch();
if (odgovor==’a’)
{
x=x-5;
}
if (odgovor==’f’)
{
x=x+5;
}

if (odgovor==’v’)
{
y=y-5;
}
if (odgovor==’c’)
{
y=y+5;
}
//cleardevice();
}
closegraph();
return EXIT_SUCCESS;
}

Ukoliko se izbriše komanda za brisanje predhodnog objekta dobija se slika slika

ili ako početni objekat je krug, dobija se slika slika

 Pr5. Napravite program koji pomoću miša pomera objekat na grafičkom ekrenu?

Rešenje:

#include <cstdlib>
#include <iostream>
#include <winbgim.h>
using namespace std;

int main()
{
int gdriver=9;
int gmode=2;
initgraph(&gdriver,&gmode,““);
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
while (!kbhit())
{
rectangle(mousex(), mousey(), mousex()+50, mousey()+50);
}
closegraph();
return EXIT_SUCCESS;
}

slika

Napomena: Naredba kbhit() ispituje dali je neki taster tastature pritisnut. Znaši naredbom while(!kbhit()) objekat se pomera sve dok se ne pritisne bilo koji taster na tastaturi.

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišete koristeći svoj WordPress.com nalog. Odjavi se /  Promeni )

Fejsbukova fotografija

Komentarišete koristeći svoj Facebook nalog. Odjavi se /  Promeni )

Povezivanje sa %s