السلام عليكم ورحمة الله وبركاته
لي كم يوم وأنا أخذ من الدروس اللي من عندكم عن OPEN GL
والله يعطيكم الصحة والعافيه .. ماقصرتوا ماشاء الله ..
عندنا تطبيق لآخر محاضرة .. في الجامعه .. وهو رسم دائرة بنقاط ..
كل شيء عندي تمام الكود ناسخته من الكتاب وعايدة عليه مية مررره
جننننني ... وماكان يطلع لي Out put يطلع الشاشه فااااااضية .. :angry:
====
#include <windows.h>
#include <GL/glut.h>
int round(const float a ){return int (a + 0.5);}
void ellipsePlotPoints(int x , int y)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,0.0);
glBegin(GL_POINTS);
glVertex2i(x,y);
glVertex2i(-x,y);
glVertex2i(x,-y);
glVertex2i(-x,-y);
glEnd();
glFlush();
}
void ellipseMidpoint(void)
{
int Rx=80;
int Ry=60;
int xCenter=0;
int yCenter=0;
int Rx2 = Rx * Rx;
int Ry2 = Ry * Ry;
int twoRx2 = 2 * Rx2;
int twoRy2 = 2 * Ry2;
int p;
int x = 0;
int y = Ry;
int px = 0;
int py = twoRx2 * y;
ellipsePlotPoints(x,y);
p=round ( Ry2 - (Rx2 * Ry) + (0.25 * Rx2));
while (px < py){
x++;
px+=twoRy2;
if(p < 0)
p+= Ry2 + px;
else {
y--;
py -=twoRx2;
p+= Ry2 + px - py;
}
ellipsePlotPoints(x,y);
}
p = round (Ry2 * (x+0.5) * (x+0.5)+ Rx2 * (y-1)*(y-1)- Rx2 * Ry2);
while ( y > 0 ){
y--;
py -=twoRx2;
if (p > 0)
p += Rx2 - py;
else {
x++;
px += twoRy2;
p += Rx2 - py + px;
}
ellipsePlotPoints(x , y);
}
}
void main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitWindowSize(640,480);
glutInitWindowPosition(100, 150);
glutCreateWindow("test");
glClearColor(1.0,1.0,1.0,1.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(-120.0,120.0,-90.0,90.0);
glutDisplayFunc(ellipseMidpoint);
glutMainLoop();
}