Format themelore si pika,vija,rrethi, etj. jane quajtur primitivat gjeometrike. Per te ndertuar nje pike perdorim funksionin: glVertex{2,3,4} {s,I,d,f} , perdorim rastet 2,3,4 per te treguar sa kordinata do percaktojne kulmin, dhe perdorim s,I,d,f per tipet e numrave perkatesisht short, integer,double dhe floating-point.
Psh: glVertex2f(1.0,2.0)
i referohet 1 pike ne sistemin kordinativ ne kordinatat (1.0,2.0). Per ti treguar OpenGL te gjitha primitivat qe ne do te perdorim gjate ndertimit duhet ti vendosim ato brenda dy komandave glBegin() dhe glEnd(). Parametri qe kalohet brenda glBegin() tregon llojin e primitives qe do perdorim per vizatim. Per te vizatuar pika perdoret GL_POINTS. Per te bashkuar cdo dy pika te njepasnjeshme me vija perdoret GL_LINES, per te bashkuar te gjitha pikat ne nje vije te thyer jo te mbyllur perdoret GL_LINE_STRIP, per te bashkuar te gjitha pikat me nje vije te thyer te mbyllur perdoret GL_LINE_LOOP, per te bashkuiar cdo kater pika ne nje katerkendesh perdoret GL_QUADS e keshtu me radhe.
Ushtrim:
Shembulli i meposhtem vizaton 4 pika me ngjyra te ndryshme dhe me distance (10,10) nga cepat e dritares.
#include<Windows.h>
#include<gl\glut.h>
void Display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POINTS);
glColor3f(0.0,0.0,0.0);
//percaktojme ngjyren e pikes te jete e zeze
glVertex2f(10.,10.);
//ndertojme piken
glColor3f(0.0,1.0,0.0);
//percaktojme ngjyren e pikes te jete e gjelber
glVertex2f(10.,110.);
//vizatojme piken
glColor3f(0.0,0.0,1.0);
glVertex2f(150.,110);
glColor3f(0.0,1.0,1.0);
glVertex2f(150.,10);
glEnd();
glFlush();
}
void init()
{
glClearColor(1.0,0.0,0.0,1.0); //percaktojme qe dritarja te jete me ngjyre te kuqe
glPointSize(5.0); //percaktojme madhesine e pikave 5 pixela
glViewport(0,0,320,240);
gluOrtho2D(0.0,160.0,0.0,120.0);
}
int main(int argc, char* argv[])
{
glutInitDisplayMode(GLUT_SINGLE |
GLUT_RGB);
glutInitWindowSize(320,240);
glutCreateWindow("Kater Pika");
init();
glutDisplayFunc(Display);
glutMainLoop();
}
Rezultati i ekzekutimit te shembullit
te
mesiperm:
0 comments:
Post a Comment