Also Like

📁 last Posts

رسومات الجرافيك

Whats App Image 2025 12 12 at 19 47 40 9568416a
#include <GL/glut.h>
#include <math.h>

const float PI = 22.0 / 7;
float xroot = 0, yroot = 0;

void SetupRC() {
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45, 1, 1, 5000);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(00, 00, 600,
        0, 0, 0,
        0, 1, 0);
}

void book() {
    // الوجه الأمامي
    glColor3f(1, 0, 1);
    glBegin(GL_QUADS);
    glVertex3f(200, 100, 10);
    glVertex3f(-200, 100, 10);
    glVertex3f(-200, -100, 10);
    glVertex3f(200, -100, 10);
    glEnd();

    // الوجه الخلفي
    glColor3f(.6, 0, 1);
    glBegin(GL_QUADS);
    glVertex3f(200, 100, -10);
    glVertex3f(-200, 100, -10);
    glVertex3f(-200, -100, -10);
    glVertex3f(200, -100, -10);
    glEnd();

    // الجانب الأيمن
    glColor3f(.6, 0, .7);
    glBegin(GL_QUADS);
    glVertex3f(200, 100, -10);
    glVertex3f(200, 100, 10);
    glVertex3f(200, -100, 10);
    glVertex3f(200, -100, -10);
    glEnd();

    // الجانب الأيسر
    glColor3f(.6, 0, .7);
    glBegin(GL_QUADS);
    glVertex3f(-200, 100, -10);
    glVertex3f(-200, 100, 10);
    glVertex3f(-200, -100, 10);
    glVertex3f(-200, -100, -10);
    glEnd();

    // الوجه العلوي
    glColor3f(.6, .3, .7);
    glBegin(GL_QUADS);
    glVertex3f(200, 100, -10);
    glVertex3f(-200, 100, -10);
    glVertex3f(-200, 100, 10);
    glVertex3f(200, 100, 10);
    glEnd();

    // الوجه السفلي
    glColor3f(1, .3, .7);
    glBegin(GL_QUADS);
    glVertex3f(200, -100, -10);
    glVertex3f(-200, -100, -10);
    glVertex3f(-200, -100, 10);
    glVertex3f(200, -100, 10);
    glEnd();
}

void cylinder() {
    glColor3f(0, 1, 0); // لون الأسطوانة أخضر

    // جسم الأسطوانة
    glBegin(GL_QUAD_STRIP);
    for (float i = 0; i <= 2 * PI; i += 2 * PI / 200)
    {
        float x = 15 * cos(i);
        float z = 15 * sin(i);
        glVertex3f(x, 101, z);  // الارتفاع العلوي (أطول قليلاً من الكتاب)
        glVertex3f(x, -101, z); // الارتفاع السفلي
    }
    glEnd();

    // الغطاء العلوي للأسطوانة
    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, 101, 0);
    for (float i = 0; i <= 2 * PI; i += 2 * PI / 200)
    {
        float x = 15 * cos(i);
        float z = 15 * sin(i);
        glVertex3f(x, 100, z);
    }
    glEnd();

    // الغطاء السفلي للأسطوانة
    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, -101, 0);
    for (float i = 0; i <= 2 * PI; i += 2 * PI / 200)
    {
        float x = 15 * cos(i);
        float z = 15 * sin(i);
        glVertex3f(x, -100, z);
    }
    glEnd();
}

void Render() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glEnable(GL_DEPTH_TEST);

    glPushMatrix();

    // التحكم بالدوران
    glRotatef(xroot, 1, 0, 0);
    glRotatef(yroot, 0, 1, 0);

    // استدعاء الدوال المطلوبة فقط
    book();
    cylinder();

    glPopMatrix();
    glFlush();
}

void specialkey(int key, int x, int y) {
    if (key == GLUT_KEY_UP) {
        xroot -= 5;
    }
    if (key == GLUT_KEY_DOWN) {
        xroot += 5;
    }
    if (key == GLUT_KEY_LEFT) {
        yroot -= 5;
    }
    if (key == GLUT_KEY_RIGHT) {
        yroot += 5;
    }
    glutPostRedisplay();
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(800, 800);
    glutCreateWindow("Book & Cylinder");
    SetupRC();
    glutDisplayFunc(Render);
    glutSpecialFunc(specialkey);
    glutMainLoop();
}

Whats App Image 2025 12 13 at 05 39 18 0b9dffb0

#include <GL/glut.h>
#include <math.h>
float PI = 3.141592;
float xroot = 0, yroot = 0;
void SetUpRC() {
    glClearColor(1, 1, 1, 1);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45, 1, 1, 5000);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(0, 0, 500, 0, 0, 0, 0, 1, 0);

}

void base_1(float height,float radius,float r, float g, float b) {
    glColor3f(r, g, b);
    glBegin(GL_QUAD_STRIP);
    for (float i = 0; i <=2*PI+1; i+=2*PI/100)
    {
        float x = radius * cos(i);
        float z = radius * sin(i);
        glVertex3f(x, height, z);
        glVertex3f(x, -height, z);
    }
    glEnd();

    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, height+1, 0);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = radius * cos(i);
        float z = radius * sin(i);
        glVertex3f(x, height, z);
    }
    glEnd();

    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, -height, 0);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = radius * cos(i);
        float z = radius * sin(i);
        glVertex3f(x, -height, z);
    }
    glEnd();

}

void ww() {
    glColor3f(.2, .3, 0);
    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0,41, 0);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = 26.4 * cos(i);
        float z = 26.4 * sin(i);
        glVertex3f(x, 41, z);
    }
    glEnd();
}


void RenderScene() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glEnable(GL_DEPTH_TEST);
    glPushMatrix();
    glRotated(xroot, 1, 0, 0);
    glRotated(yroot, 0, 1, 0);

    //------------------Start
    glPushMatrix();
    glTranslated(0, -30, 0);
    base_1(13,30.4,1,0,1);
    glPopMatrix();

    //------------------END
    //-------------------------------------------------------
    //------------------Start
    glPushMatrix();
    base_1(40,30,0,1,0);
    glPopMatrix();

    //------------------END
    //-------------------------------------------------------
    //------------------Start
    glPushMatrix();
    glTranslated(50, 0, 0);
    base_1(20, 5, 1, 0.5, 1);
    glPopMatrix();
    //------------------END

    //-------------------------------------------------------
    //------------------Start
    glPushMatrix();
    glTranslated(35, 25, 0);
    glRotated(90, 0, 0, 1);
    base_1(20, 5, 1, 0.5, 1);
    glPopMatrix();
    //------------------END
    //-------------------------------------------------------
    //------------------Start
    glPushMatrix();
    glTranslated(35, -25, 0);
    glRotated(90, 0, 0, 1);
    base_1(20, 5, 1, 0.5, 1);
    glPopMatrix();
    //------------------END
    ww();


    glPopMatrix();
    glutSwapBuffers();
}

void SpecialKey(int key,int x,int y) {

    if (key==GLUT_KEY_UP) {
        xroot -= 5;
    }
    if (key == GLUT_KEY_DOWN) {
        xroot += 5;
    }
    if (key == GLUT_KEY_LEFT) {
        yroot -= 5;
    }
    if (key == GLUT_KEY_RIGHT) {
        yroot += 5;
    }
    glutPostRedisplay();
}


int main(int argc , char**argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(600, 600);
    glutCreateWindow("kero");
    SetUpRC();
    glutDisplayFunc(RenderScene);
    glutSpecialFunc(SpecialKey);
    glutMainLoop();
    return 0;
}

Whats App Image 2025 12 12 at 19 58 57 c05e22a0

#include <GL/glut.h>
#include <math.h>

const float PI = 22.0 / 7;
float xroot = 0, yroot = 0;

void SetupRC() {
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45, 1, 1, 5000);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(00, 00, 600,
        0, 0, 0,
        0, 1, 0);
}

void nail_base() {
    glColor3f(0.9, .7, 0.2); // لون ذهبي/نحاسي للقاعدة

    // جسم القاعدة
    glBegin(GL_QUAD_STRIP);
    for (float i = 0; i <= 2 * PI; i += 2 * PI / 200)
    {
        float x = 15 * cos(i);
        float z = 15 * sin(i);
        glVertex3f(x, 10, z);
        glVertex3f(x, -10, z);
    }
    glEnd();

    // الغطاء العلوي للقاعدة
    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, 11, 0);
    for (float i = 0; i <= 2 * PI; i += 2 * PI / 200)
    {
        float x = 15 * cos(i);
        float z = 15 * sin(i);
        glVertex3f(x, 11, z);
    }
    glEnd();

    // الغطاء السفلي للقاعدة
    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, -11, 0);
    for (float i = 0; i <= 2 * PI; i += 2 * PI / 200)
    {
        float x = 15 * cos(i);
        float z = 15 * sin(i);
        glVertex3f(x, -11, z);
    }
    glEnd();
}

void nail_pen() {
    glColor3f(0.9, .7, 0.9); 

    // جسم القلم/العنق
    glBegin(GL_QUAD_STRIP);
    for (float i = 0; i <= 2 * PI; i += 2 * PI / 200)
    {
        float x = 10 * cos(i);
        float z = 10 * sin(i);
        glVertex3f(x, 50, z);
        glVertex3f(x, -50, z);
    }
    glEnd();

    // الغطاء العلوي
    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, 51, 0);
    for (float i = 0; i <= 2 * PI; i += 2 * PI / 200)
    {
        float x = 10 * cos(i);
        float z = 10 * sin(i);
        glVertex3f(x, 51, z);
    }
    glEnd();

    // الغطاء السفلي
    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, -51, 0);
    for (float i = 0; i <= 2 * PI; i += 2 * PI / 200)
    {
        float x = 10 * cos(i);
        float z = 10 * sin(i);
        glVertex3f(x, -51, z);
    }
    glEnd();
}

void nail_pyramid() {
    glColor3f(.7, .7, .7); // لون رمادي للغطاء الهرمي
    glBegin(GL_TRIANGLES);

    // الوجه الأول
    glVertex3f(0, 30, 0);    // قمة الهرم
    glVertex3f(-12, 0, 12);
    glVertex3f(12, 0, 12);

    // الوجه الثاني
    glVertex3f(0, 30, 0);    // قمة الهرم
    glVertex3f(-12, 0, -12);
    glVertex3f(12, 0, -12);

    // الوجه الثالث
    glVertex3f(0, 30, 0);    // قمة الهرم
    glVertex3f(-12, 0, 12);
    glVertex3f(-12, 0, -12);

    // الوجه الرابع
    glVertex3f(0, 30, 0);    // قمة الهرم
    glVertex3f(12, 0, 12);
    glVertex3f(12, 0, -12);

    glEnd();
}

void Render() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glEnable(GL_DEPTH_TEST);

    glPushMatrix(); // حفظ مصفوفة العالم الأصلية

    // الدوران العام للمشهد بالكيبورد
    glRotatef(xroot, 1, 0, 0);
    glRotatef(yroot, 0, 1, 0);

    // 1. رسم القاعدة (في الأسفل)
    glPushMatrix();
    glTranslated(0, -50, 0); // تحريك لأسفل محور Y
    nail_base();
    glPopMatrix();

    // 2. رسم الجسم الأوسط (القلم) - في المنتصف
    nail_pen();

    // 3. رسم الغطاء الهرمي (في الأعلى)
    glPushMatrix();
    glTranslated(0, 50, 0); // تحريك لأعلى محور Y ليجلس فوق القلم
    nail_pyramid();
    glPopMatrix();

    glPopMatrix(); // استرجاع المصفوفة الأصلية
    glFlush();
}

void specialkey(int key, int x, int y) {
    if (key == GLUT_KEY_UP) {
        xroot -= 5;
    }
    if (key == GLUT_KEY_DOWN) {
        xroot += 5;
    }
    if (key == GLUT_KEY_LEFT) {
        yroot -= 5;
    }
    if (key == GLUT_KEY_RIGHT) {
        yroot += 5;
    }
    glutPostRedisplay();
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(800, 800);
    glutCreateWindow("Nail Bottle"); // تغيير اسم النافذة
    SetupRC();
    glutDisplayFunc(Render);
    glutSpecialFunc(specialkey);
    glutMainLoop();
}

Pasted image 20251211150323

#include <GL/glut.h>
#include <math.h>

float angleX = 0.0f;
float angleY = 0.0f;

// إعدادات العرض
void SetupRC() {
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f); // خلفية بيضاء
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45.0, 1.0, 1.0, 500.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    // الكاميرا بعيدة قليلاً لتغطية طول الفرشاة
    gluLookAt(0.0, 50.0, 250.0,
        0.0, 0.0, 0.0,
        0.0, 1.0, 0.0);
}

// --- دالة مساعدة: رسم متوازي مستطيلات (صندوق) ---
// هنستخدمها لرسم اليد والرأس
void DrawBoxHelper(float width, float height, float depth, float r, float g, float b) {
    glColor3f(r, g, b);
    float w = width / 2.0f;
    float h = height / 2.0f;
    float d = depth / 2.0f;

    glBegin(GL_QUADS);
    // الوجه الأمامي
    glVertex3f(-w, -h, d); glVertex3f(w, -h, d);
    glVertex3f(w, h, d); glVertex3f(-w, h, d);
    // الوجه الخلفي
    glVertex3f(-w, -h, -d); glVertex3f(-w, h, -d);
    glVertex3f(w, h, -d); glVertex3f(w, -h, -d);
    // الوجه العلوي
    glVertex3f(-w, h, -d); glVertex3f(-w, h, d);
    glVertex3f(w, h, d); glVertex3f(w, h, -d);
    // الوجه السفلي
    glVertex3f(-w, -h, -d); glVertex3f(w, -h, -d);
    glVertex3f(w, -h, d); glVertex3f(-w, -h, d);
    // الوجه الأيمن
    glVertex3f(w, -h, -d); glVertex3f(w, h, -d);
    glVertex3f(w, h, d); glVertex3f(w, -h, d);
    // الوجه الأيسر
    glVertex3f(-w, -h, -d); glVertex3f(-w, -h, d);
    glVertex3f(-w, h, d); glVertex3f(-w, h, -d);
    glEnd();
}

// --- دالة رسم الشعيرات ---
// عبارة عن خطوط صغيرة فوق سطح معين
void DrawBristles(float areaWidth, float areaDepth, float height) {
    glColor3f(0.0f, 0.0f, 0.8f); // أزرق داكن للشعيرات

    float stepX = 2.5f; // المسافة بين الشعرة والأخرى
    float stepZ = 2.5f;

    glBegin(GL_LINES);
    // حلقة تكرارية لرسم شبكة من الخطوط
    for (float x = -areaWidth / 2 + 2; x <= areaWidth / 2 - 2; x += stepX) {
        for (float z = -areaDepth / 2 + 2; z <= areaDepth / 2 - 2; z += stepZ) {
            glVertex3f(x, 0.0f, z);      // نقطة البداية (على السطح)
            glVertex3f(x, height, z);    // نقطة النهاية (أعلى)
        }
    }
    glEnd();
}

// رسم الفرشاة بالكامل
void DrawToothbrush() {
    // أبعاد الأجزاء
    float handleLen = 100.0f;
    float handleWidth = 10.0f;
    float handleHeight = 5.0f;

    float headLen = 30.0f;
    float headWidth = 15.0f;
    float headHeight = 5.0f;

    glPushMatrix();
    // توسيط الفرشاة
    glTranslatef(-20.0f, 0.0f, 0.0f);

    // 1. رسم اليد (Handle) - أزرق
    DrawBoxHelper(handleLen, handleHeight, handleWidth, 0.2f, 0.2f, 0.9f);

    // 2. رسم الرأس (Head) - أخضر
    // نحركه لليمين ليكون متصل بنهاية اليد
    glPushMatrix();
    float offset = (handleLen / 2.0f) + (headLen / 2.0f);
    glTranslatef(offset, 0.0f, 0.0f);

    DrawBoxHelper(headLen, headHeight, headWidth, 0.2f, 0.8f, 0.2f);

    // 3. رسم الشعيرات فوق الرأس
    glPushMatrix();
    glTranslatef(0.0f, headHeight / 2.0f, 0.0f); // نطلع لسطح الرأس
    DrawBristles(headLen, headWidth, 15.0f); // طول الشعيرة 15
    glPopMatrix();

    glPopMatrix();

    glPopMatrix();
}

// التحكم بالأسهم
void SpecialKeys(int key, int x, int y) {
    if (key == GLUT_KEY_UP) angleX -= 5.0f;
    if (key == GLUT_KEY_DOWN) angleX += 5.0f;
    if (key == GLUT_KEY_LEFT) angleY -= 5.0f;
    if (key == GLUT_KEY_RIGHT) angleY += 5.0f;
    glutPostRedisplay();
}

// التايمر للأنيميشن
void timer(int val) {
    angleY += 2.0f; // دوران عشان يبان الـ 3D
    glutPostRedisplay();
    glutTimerFunc(33, timer, 1);
}

// دالة الرسم الرئيسية
void RenderScene() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glEnable(GL_DEPTH_TEST);

    glPushMatrix();
    glRotatef(angleX, 1.0, 0.0, 0.0);
    glRotatef(angleY, 0.0, 1.0, 0.0);

    DrawToothbrush();

    glPopMatrix();
    glutSwapBuffers();
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(800, 600);
    glutCreateWindow("Toothbrush - Rectangular Prisms");

    SetupRC();
    glutDisplayFunc(RenderScene);
    glutSpecialFunc(SpecialKeys);
    glutTimerFunc(33, timer, 1);
    glutMainLoop();
    return 0;
}

Whats App Image 2025 12 12 at 20 07 05 7b366a61

#include <GL/glut.h>
#include <math.h>

const float PI = 22.0 / 7;
float xroot = 0, yroot = 0;

void SetupRC() {
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45, 1, 1, 5000);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(00, 00, 600,
        0, 0, 0,
        0, 1, 0);
}

// دالة رسم يد الفرشاة (المقبض)
void hairbrush() {
    glColor3f(0, 0, 1); // لون أزرق
    glBegin(GL_QUAD_STRIP);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = 7.1 * cos(i);
        float z = 7.1 * sin(i);
        glVertex3f(x, 72, z);
        glVertex3f(x, -72, z);
    }
    glEnd();

    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, 73, 0);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = 7.1 * cos(i);
        float z = 7.1 * sin(i);
        glVertex3f(x, 73, z);
    }
    glEnd();
}

// دالة رسم قاعدة الفرشاة (الجسم البيضاوي)
void brush() {
    glColor3f(0, 1, 0); // أخضر من الأعلى
    glBegin(GL_QUAD_STRIP);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = 50 * cos(i);
        float z = 50 * sin(i);
        glVertex3f(x, 7.2, z);
        glVertex3f(x, -7.2, z);
    }
    glEnd();

    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, 7.2, 0);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = 50 * cos(i);
        float z = 50 * sin(i);
        glVertex3f(x, 7.2, z);
    }
    glEnd();

    glColor3f(0, 1, 1); // سماوي من الأسفل
    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, -7.2, 0);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = 50 * cos(i);
        float z = 50 * sin(i);
        glVertex3f(x, -7.2, z);
    }
    glEnd();
}

// دالة رسم سِنة واحدة (شعرة)
void snon() {
    glColor3f(0, 0, 1); // أزرق
    glBegin(GL_QUAD_STRIP);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = 3 * cos(i);
        float z = 3 * sin(i);
        glVertex3f(x, 25, z);
        glVertex3f(x, 0, z);
    }
    glEnd();

    glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, 25, 0);
    for (float i = 0; i <= 2 * PI + 1; i += 2 * PI / 100)
    {
        float x = 3 * cos(i);
        float z = 3 * sin(i);
        glVertex3f(x, 25, z);
    }
    glEnd();
}

void Render() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glEnable(GL_DEPTH_TEST);

    glPushMatrix(); // بداية الدوران الكلي للمشهد
    glRotatef(xroot, 1, 0, 0);
    glRotatef(yroot, 0, 1, 0);

    // 1. رسم يد الفرشاة
    glPushMatrix();
    glTranslated(-140, 0, 0); // إزاحة لليسار
    glRotatef(90, 0, 0, 1);   // تدوير اليد لتصبح أفقية
    hairbrush();
    glPopMatrix();


    // 2. رسم قاعدة الفرشاة
    glPushMatrix();
    glScaled(1.5, 1, 1); // تكبير في محور X لعمل الشكل البيضاوي
    brush();
    glPopMatrix();

    // 3. رسم الأسنان (Complex Loop Logic)
    // الجزء الأول من الأسنان
    int zz = 70;
    for (int z = 0; z < 40; z += 10)
    {
        for (int i = -zz; i <= zz; i += 10)
        {
            glPushMatrix();
            glTranslated(i, 0, z);
            snon();
            glPopMatrix();
        }
        zz -= 10; // تقليل العرض كلما اتجهنا للحافة
    }

    // إعادة تهيئة المتغير للجزء الثاني
    zz = 70;
    zz -= 10;

    // الجزء الثاني من الأسنان (الجهة المقابلة)
    for (int z = -10; z > -40; z -= 10)
    {
        for (int i = -zz; i <= zz; i += 10)
        {
            glPushMatrix();
            glTranslated(i, 0, z);
            snon();
            glPopMatrix();
        }
        zz -= 10;
    }

    glPopMatrix(); // نهاية الدوران الكلي
    glFlush();
}

void specialkey(int key, int x, int y) {
    if (key == GLUT_KEY_UP) {
        xroot -= 5;
    }
    if (key == GLUT_KEY_DOWN) {
        xroot += 5;
    }
    if (key == GLUT_KEY_LEFT) {
        yroot -= 5;
    }
    if (key == GLUT_KEY_RIGHT) {
        yroot += 5;
    }
    glutPostRedisplay();
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(800, 800);
    glutCreateWindow("Hairbrush");
    SetupRC();
    glutDisplayFunc(Render);
    glutSpecialFunc(specialkey);
    glutMainLoop();
}
Comments