الله يعافيكي وشكر لمرورك :)
عرض للطباعة
مختبر الرسم بإستخدام الحاسوب 30/3/2010
برنامج الهرم الرباعي الأوجه ثلاثي الأبعاد
و هذا هو الكود و هو شبيه بكود المكعب الثلاثي الأبعاد إلا انه تم استخدام المثلثات TRIANGLES لرسم اوجه الهرم و المربع QUADS لرسم قاعدة الهرم
كود HTML:/**********************************
Computer Graphics Lab
30/03/2010
Zaed Murad
unijust@unijust.com
***********************************/
#include <cmath>
#include <gl\glut.h>
int pts[5][3] = { {0,0,0},{4,0,0},{4,0,4},{0,0,4},{2,4,2}};
double r = 3;
double theta = 0.5;
int a = 2;
int b = 2;
double cx = a + r * cos(theta);
double cz = b + r * sin(theta);
double cy = 3.0;
void triangle(int v1,int v2,int v3)
{
glBegin(GL_TRIANGLES);
glVertex3iv(pts[v1]);
glVertex3iv(pts[v2]);
glVertex3iv(pts[v3]);
glEnd();
}
void quad(int v1,int v2,int v3,int v4)
{
glBegin(GL_QUADS);
glVertex3iv(pts[v1]);
glVertex3iv(pts[v2]);
glVertex3iv(pts[v3]);
glVertex3iv(pts[v4]);
glEnd();
}
void drawCube()
{
glColor3f(1,1,1);
quad(0,1,2,3);
}
void drawTriangle()
{
glColor3f(0,0,1);
triangle(0,1,4);
glColor3f(0,1,1);
triangle(3,2,4);
glColor3f(1,0,1);
triangle(2,1,4);
glColor3f(0,1,0);
triangle(0,3,4);
}
void init()
{
glLoadIdentity();
gluLookAt(cx,cy,cz,2,0,2,0,1,0); // y is the up vector
glMatrixMode(GL_PROJECTION);
glOrtho(-7,7,-7,7,-7,7);
}
void drawAxis()
{
glBegin(GL_LINES);
/******** X ********/
glColor3f(0,1,0);
glVertex3f(0,0,0);
glVertex3f(5,0,0);
/******** Y ********/
glColor3f(1,0,0);
glVertex3f(0,0,0);
glVertex3f(0,5,0);
/******** Z ********/
glColor3f(0,0,1);
glVertex3f(0,0,0);
glVertex3f(0,0,5);
glEnd();
}
void display()
{
glClearColor(0.5,0.5,0.5,0);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
drawAxis();
drawCube();
drawTriangle();
glFlush();
}
void key(unsigned char c,int x,int y)
{
switch(c)
{
case 'y':
case 'Y':
theta -=0.0174444;
if(theta < 0)
theta = 2 * (22/7.0);
break;
case 'x':
case 'X':
theta +=0.0174444;
if(theta > 2*(22/7))
theta = 0;
break;
}
cx = a + r * cos(theta);
cz = b + r * sin(theta);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(cx,cy,cz,2,0,2,0,1,0); // y is the up vector
display();
}
void main(int c,char** v)
{
glutInit(&c,v);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("3D Project");
init();
glEnable(GL_DEPTH_TEST);
glutKeyboardFunc(key);
glutDisplayFunc(display);
glutMainLoop();
}
بعض الصور بعد تنفيذ الكود
http://img265.imageshack.us/img265/7540/47756456.jpg
الهرم يتحرك نحو اليمين عند الضغط على X
http://img192.imageshack.us/img192/7444/41286590.jpg
الهرم يتحرك نحو اليسار عند الضغط على Y
http://img526.imageshack.us/img526/311/41808252.jpg
و اي استفسار انا بالخدمة :)
مختبر الرسم بإستخدام الحاسوب 5/4/2010
bitmap
كود:
#include <gl\glut.h>
GLubyte bitShape[20]={
0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,
0xff,0x80,0x7f,0x00,0x3e,0x00,0x1c,0x00,0x08,0x00
};
char x[]="ZAEDO";
void init()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,400,0,400); // to invert the cordinate
}
void bitm(int x,int y)
{
glColor3f(0,1,0); // shape color
glRasterPos2i(x,y); // the position of shape
glBitmap(10,9,0,0,0,0,bitShape); // drawing shape from array
// glBitmap(rows,cols,xOrigen,xOrigen,xOffset,yOffset,array);
// glBitmap(10,9,10,9,0,0,bitShape);
// glBitmap(10,9,9,10,0,0,bitShape);
// glBitmap(10,9,5,5,0,0,bitShape);
}
void display()
{
glClearColor(0,0,0,0);
/* for 2D */ /* for 3D */
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPixelStorei(GL_UNPACK_ALIGNMENT,1);
/*
for(int i=10;i<=350;i+=10)
bitm(i,10);
*/
bitm(10,10);
glColor3f(1,1,1);
glPointSize(5);
glBegin(GL_POINTS);
glVertex2i(50,50);
glEnd();
// to print an char in openGL
glRasterPos2i(100,300);
glutBitmapCharacter(GLUT_BITMAP_9_BY_15,'A');
for(int i=0;i<5;i++)
{
glRasterPos2i(i*13+10,300);
glutBitmapCharacter(GLUT_BITMAP_9_BY_15,x[i]);
}
glFlush();
}
void main(int argc,char** argv)
{
glutInit(&argc,argv);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("Bitmap Project");
glEnable(GL_DEPTH_TEST);
init();
glutDisplayFunc(display);
glutMainLoop();
}
شكــــــــــــــــــــــــــــــــــــــــــــــرا كتـــــــــــــــــــــــــــــــــــــــيــــــــ ـر ..
الموضوع ممتاز والله يعطيكوا ألف عافية
فراشة الربيع:bl (11):
يعطيك الف عافيه ع مجهودك
:bl (7): thnxxxx :bl (7):
يعطيك العافيه
[align=center]ههههههه
انا واللهِ لسى مو منزله الماده عالفصل الجاي انشاءالله.
بس الكل بيحكي عنها موووت على كتر ماهيه صعبه الله يستر منها انشاءالله خير
اخي ****** دائما مبدعا والكلمات تعجز عن الوصف
يعطيك 1000 عافيه [/align]
[align=center]نسيت اسأل سؤال
هلا هادي الماده انا بقدر اعمل من خلااالها لعبة XO الغنيه عن التعريف
لو فيه طرق حد يزودنا بالكودات لالها مع العلم انا لااا أفقه منها شيء لكن بنتعلم عالبكير.
البنت ناازله دراسه بلبرمجه من متى مابعرف :bl (7): لهيك حد يجيبلنا كود اللعبه خلنا نتعرف اكتر عالبرمجيه[/align]