الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تنبيه ] كود لشخص بيمشي

بدأه طالبه في الحاسب في 21 مايو 2012 · 6 رد · 1,559 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ..

ممكن عاوزه مساعده في الكود ده..

مش راضي يشتغل ..

ممكن حد يشوفلي ايه هوا الغلط..

فكرة الكود ان رجل بعملوا ترانزليت وسكايلنق و روتايشن باستخدام الكيبورد ..

عاوزه مساعده ضروري..

الكود

^

^

^

#include <windows.h>

#include <GL/glut.h>

float tx=0,ty=0;

float sx=1,sy=1;

float xp=0,yp=0;

float angle=0;

int type=1;

void draww(void)

{

// rass

glColor3ub(255,231,204);

glBegin(GL_POLYGON);

glVertex2i (-100,90);

glVertex2i (-140,90);

glVertex2i (-140,50);

glVertex2i (-100,50);

glEnd();

//3en yamen

glPointSize(6);

glBegin(GL_POINTS);

glColor3f(0, 0, 1);

glVertex2i(-110,80);

glEnd();

//3en yasar

glPointSize(6);

glBegin(GL_POINTS);

glColor3f(0, 0, 1);

glVertex2i(-125,80);

glEnd();

//jasm

glColor3ub(0,0,0);

glBegin(GL_LINES);

glVertex2f(-120, 50);

glVertex2f(-120, -150);

glEnd();

//regl ysar

glColor3ub(0,0,0);

glBegin(GL_LINES);

glVertex2f(-120, -150);

glVertex2f(-150, -300);

glEnd();

//regl yamen

glColor3ub(0,0,0);

glBegin(GL_LINES);

glVertex2f(-120, -150);

glVertex2f(-100, -300);

glEnd();

//yad yamen

glColor3ub(0,0,0);

glBegin(GL_LINES);

glVertex2f(-120, 0);

glVertex2f(-50, -50);

glEnd();

//yad yasar

glColor3ub(0,0,0);

glBegin(GL_LINES);

glVertex2f(-120, 0);

glVertex2f(-200, -50);

glEnd();

}

void transformation()

{

glTranslatef(tx,ty,0);//translation on x and y

glTranslatef(xp,yp,0);

glScalef(sx,sy,0);//scaling on x and y

glTranslatef(-xp,-yp,0);

glTranslatef(xp,yp,0);

glRotatef(angle,0,0,1);//rotation on z

glTranslatef(-xp,-yp,0);

}

void draw()

{

transformation();

}

void display()

{

glClearColor(0.0,0.0,0.0,0.0);

glClear(GL_COLOR_BUFFER_BIT);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(-100,100,-100,100);

draw();

glutReshapeWindow(400,400);

glutSwapBuffers();

}

void Keyboard(unsigned char key,int x,int y)

{

if(key=='R'||key=='r')

type=3;

else

if(key=='S'||key=='s')

type=2;

else

if(key=='T'||key=='t')

type=1;

}

void Translate(int key)

{

if (key==GLUT_KEY_UP)

ty=ty+1.7;

else

if (key==GLUT_KEY_DOWN)

ty=ty-1.7;

else

if (key==GLUT_KEY_LEFT)

tx=tx-1.7;

else

if (key==GLUT_KEY_RIGHT)

tx=tx+1.7;

}

void Scale(int key)

{

if (key==GLUT_KEY_UP)

sy=sy+0.1;

else

if (key==GLUT_KEY_DOWN)

sy=sy-0.1;

else

if (key==GLUT_KEY_LEFT)

sx=sx-0.1;

else

if (key==GLUT_KEY_RIGHT)

sx=sx+0.1;

}

void Rotate(int key)

{

if (key==GLUT_KEY_LEFT)

angle=angle+5;

else

if (key==GLUT_KEY_RIGHT)

angle=angle-5;

}

void Special(int key,int x,int y)

{

if(type==1)

Translate(key);

else

if(type==2)

Scale(key);

else

if(type==3)

Rotate(key);

if(key==GLUT_KEY_F1)

glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);

else

if(key==GLUT_KEY_F2)

glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);

glutPostRedisplay();

}

void main()

{

glutInitWindowSize(1000,1000);

glutInitDisplayMode(GLUT_RGB);

glutCreateWindow("Points");

glutDisplayFunc(display);

glutKeyboardFunc(Keyboard);

glutSpecialFunc(Special);

glClearColor(1.0,1.0, 1.0, 0.0);

glOrtho(-500.0, 500.0, -500.0, 500.0, 0.0, 1.0);

glutMainLoop();

}

#2

أجريت بعض التعديلات على البرنامج وعمل لدي :

post-231926-013637300 1337705660_thumb.p

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

float tx = 0, ty = 0;
float sx = 1, sy = 1;
float xp = 0, yp = 0;
float angle = 0;
int type = 1;

void draw(void) {

// rass
    glColor3ub(255, 231, 204);
    glBegin(GL_POLYGON);
    glVertex2i(-100, 90);
    glVertex2i(-140, 90);
    glVertex2i(-140, 50);
    glVertex2i(-100, 50);
    glEnd();
//3en yamen
    glPointSize(6);
    glBegin(GL_POINTS);
    glColor3f(0, 0, 1);
    glVertex2i(-110, 80);
    glEnd();
//3en yasar
    glPointSize(6);
    glBegin(GL_POINTS);
    glColor3f(0, 0, 1);
    glVertex2i(-125, 80);
    glEnd();
//jasm
    glColor3ub(255, 231, 204);
    glBegin(GL_LINES);
    glVertex2f(-120, 50);
    glVertex2f(-120, -150);
    glEnd();
//regl ysar
    glColor3ub(255, 231, 204);
    glBegin(GL_LINES);
    glVertex2f(-120, -150);
    glVertex2f(-150, -300);
    glEnd();
//regl yamen
    glColor3ub(255, 231, 204);
    glBegin(GL_LINES);
    glVertex2f(-120, -150);
    glVertex2f(-100, -300);
    glEnd();
//yad yamen
    glColor3ub(255, 231, 204);
    glBegin(GL_LINES);
    glVertex2f(-120, 0);
    glVertex2f(-50, -50);
    glEnd();
//yad yasar
    glColor3ub(255, 231, 204);
    glBegin(GL_LINES);
    glVertex2f(-120, 0);
    glVertex2f(-200, -50);
    glEnd();
}


void transformation()
{
    glTranslatef(tx, ty, 0);	//translation on x and y

    glTranslatef(xp, yp, 0);
    glScalef(sx, sy, 0);	//scaling on x and y
    glTranslatef(-xp, -yp, 0);

    glTranslatef(xp, yp, 0);
    glRotatef(angle, 0, 0, 1);	//rotation on z
    glTranslatef(-xp, -yp, 0);

}


void display() {

    glClearColor(0.0, 0.0, 0.0, 0.0);
    glClear(GL_COLOR_BUFFER_BIT);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(-100, 100, -100, 100);

    transformation();
    draw();

    glutReshapeWindow(400, 400);
    glutSwapBuffers();


}

void Keyboard(unsigned char key, int x, int y) {

    if (key == 'R' || key == 'r')
	    type = 3;
    else if (key == 'S' || key == 's')
	    type = 2;
    else if (key == 'T' || key == 't')
	    type = 1;

}

void Translate(int key) {

    if (key == GLUT_KEY_UP)
	    ty = ty + 1.7;
    else if (key == GLUT_KEY_DOWN)
	    ty = ty - 1.7;
    else if (key == GLUT_KEY_LEFT)
	    tx = tx - 1.7;
    else if (key == GLUT_KEY_RIGHT)
	    tx = tx + 1.7;

}

void Scale(int key) {

    if (key == GLUT_KEY_UP)
	    sy = sy + 0.1;
    else if (key == GLUT_KEY_DOWN)
	    sy = sy - 0.1;
    else if (key == GLUT_KEY_LEFT)
	    sx = sx - 0.1;
    else if (key == GLUT_KEY_RIGHT)
	    sx = sx + 0.1;

}

void Rotate(int key) {

    if (key == GLUT_KEY_LEFT)
	    angle = angle + 5;
    else if (key == GLUT_KEY_RIGHT)
	    angle = angle - 5;

}

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

    if (type == 1)
	    Translate(key);
    else if (type == 2)
	    Scale(key);
    else if (type == 3)
	    Rotate(key);
    if (key == GLUT_KEY_F1)
	    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
    else if (key == GLUT_KEY_F2)
	    glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

    glutPostRedisplay();
}


void main(int argc, char **argv) {

    glutInit(&argc, argv);
    glutInitWindowSize(1000, 1000);
    glutInitDisplayMode(GLUT_RGB);
    glutCreateWindow("Points");

    glutDisplayFunc(display);
    glutKeyboardFunc(Keyboard);
    glutSpecialFunc(Special);
    glClearColor(1.0, 1.0, 1.0, 0.0);
    glOrtho(-3.0, 3.0, -3.0, 3.0, 3.0, 1.0);
    glutMainLoop();
}
المرفقات
sc.png

تم تعديل هذه المشاركة بواسطة Mr.B في 22 مايو 2012 في 19:56

#3

السلام عليكم ورحمة الله وبركاته

رااااااااااااائع.. بأي برنامج يعمل هذا وما هو ال OpenGL ؟

يعني يشتغل على دوت نت 2008؟ ولا بيئة أخرى؟

تحياتي

#4

Mr.B

شكرااااااااااااااااااااااااااااااا بجد ساعدتني كثييير ..

اشتغل معايا الكود لكن انا عاملة زي الخلفيه مش راضيه تتطلع هذا كود الخلفيه ..

مش عارفه فين احط الكول بتاعها ..

void back(){

glClear(GL_COLOR_BUFFER_BIT);

//background

glColor3ub (111, 111, 111);

glBegin(GL_POLYGON);

glVertex2i (-500,500);

glVertex2i (500,500);

glVertex2i (500,-500);

glVertex2i (-500,-500);

glEnd();

//read carbet

//glColor3f(1.0, 0.0, 0.0);

glBegin(GL_POLYGON);

glColor3ub (111, 0, 0);

glVertex2i (0,-400);

glColor3ub (111, 0, 0);

glVertex2i (-300,-400);

glColor3ub (270, 0, 0);

glVertex2i (0,400);

glEnd();

//mothalth aswad

glColor3f(0.0, 0.0, 0.0);

glBegin(GL_POLYGON);

glVertex2i (20,-450);

glVertex2i (0,-400);

glVertex2i (0,400);

glEnd();

//mostateel aswad

glColor3f(0.0, 0.0, 0.0);

glBegin(GL_POLYGON);

glVertex2i (0,-400);

glVertex2i (-300,-400);

glVertex2i (-280,-450);

glVertex2i (20,-450);

glEnd();

//back wall

glColor3ub(111,111,111);

glBegin(GL_POLYGON);

glVertex2i (-500,500);

glVertex2i (500,500);

glVertex2i (500,0);

glVertex2i (-500,0);

glEnd();

// 7dod Lroom

glColor3ub(1,1,1);

glLineWidth(4.0);

glBegin(GL_LINES);

glVertex2i (100,0);

glVertex2i (-500,0);

glEnd();

glColor3ub(1,1,1);

glLineWidth(4.0);

glBegin(GL_LINES);

glVertex2i (100,0);

glVertex2i (100,500);

glEnd();

glColor3ub(1,1,1);

glLineWidth(4.0);

glBegin(GL_LINES);

glVertex2i (100,0);

glVertex2i (500,-500);

glEnd();

glColor3ub(111,111,111);

glBegin(GL_POLYGON);

glVertex2i (-500,500);

glVertex2i (500,500);

glVertex2i (500,0);

glVertex2i (-500,0);

glEnd();

}

#5

؟؟؟؟؟؟؟

#6

بليز حد يرد ..

دا بروجكت بيتسلم السبت ..

#7

*- يحظر استخدام اللهجة العامية

*- أو كتابة الأسئلة باللغة الإنجليزية

*- أو كتابة الكلمات الإنجليزية بالعربية

====

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

مواضيع مشابهة