شادن..}~

كيف احرك الاشكال ...!

2 ردود في هذا الموضوع

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

ممكن احد يساعدني :sad:

انا ابغى اسوي مشروع تصميم فستان وحيكون عندي منيكان وكذا شكل على اليسار ابغى احرك من الاشكال دي واحطها على المنيكان

بس ماني عارفه كيف استخدم فنكشن (Motion) عشان احرك دي الاشكال....؟

وهل ممكن اول ماااحركه وابغى احطه على المنيكان ياخذ مكانو علطول على نفس نقاط المنيكان ...؟

انا راسمه شئ مبدئي بس ابغى اعرف استخدام الفنكشن عشان ابدأ فيه

فهينا لو ابغى احرك الشكل الاحمر على الجزء اللي فوق من المنيكان ؟؟



#include <windows.h>
#include <gl\glut.h>


void draw(void)
{
glClear (GL_COLOR_BUFFER_BIT);
//-----------------------------Detiles of almanecan---------------------------
glBegin (GL_POLYGON);
glColor3f(0, 0, 0);
glVertex2i(200,30);
glVertex2i(213,26);
glVertex2i(213,20);
glVertex2i(210,20);
glVertex2i(210,24);
glVertex2i(197,28);
glEnd();

glLineWidth(1);
glBegin(GL_LINE_LOOP);
glColor3f(0, 0, 0);
glVertex2i(200,30);
glVertex2i(213,26);
glVertex2i(213,20);
glVertex2i(210,20);
glVertex2i(210,24);
glVertex2i(197,28);
glEnd();

//-----------------------------2--------------------------
glBegin (GL_POLYGON);
glColor3f(0, 0, 0);

glVertex2i(195,30);
glVertex2i(182,22);
glVertex2i(182,16);
glVertex2i(186,16);
glVertex2i(186,20);
glVertex2i(197,28);
glEnd();

glLineWidth(1);
glBegin(GL_LINE_LOOP);
glColor3f(0, 0, 0);
glVertex2i(195,30);
glVertex2i(182,22);
glVertex2i(182,16);
glVertex2i(186,16);
glVertex2i(186,20);
glVertex2i(197,28);
glEnd();

//-----------------------------3--------------------------
glBegin (GL_POLYGON);
glColor3f(0, 0, 0);

glVertex2i(200,84);
glVertex2i(195,84);
glVertex2i(195,30);
glVertex2i(200,30);

glEnd();

glLineWidth(1);
glBegin(GL_LINE_LOOP);
glColor3f(0, 0, 0);
glVertex2i(200,84);
glVertex2i(195,84);
glVertex2i(195,30);
glVertex2i(200,30);
glEnd();
//--------------------------upper-------------------------------------

glBegin (GL_POLYGON);
glColor3f(0, 0, 0);

glVertex2i(196,169);
glVertex2i(200,166);
glVertex2i(200,160);
glVertex2i(196,161);

glEnd();

glLineWidth(1);
glBegin(GL_LINE_LOOP);
glColor3f(0, 0, 0);
glVertex2i(196,169);
glVertex2i(200,166);
glVertex2i(200,160);
glVertex2i(196,161);
glEnd();

//---------------------------upper of manekan----------------------------

glBegin (GL_POLYGON);
glColor3f(1,1,.83);
glVertex2i(194,161);
glVertex2i(203,160);
glVertex2i(204,154);
glVertex2i(216,151);
glVertex2i(212,136);
glVertex2i(211,120);
glVertex2i(187,120);
glVertex2i(186,130);
glVertex2i(179,149);
glVertex2i(181,151);
glVertex2i(192,155);
glEnd();

glLineWidth(1.5);
glBegin(GL_LINE_LOOP);
glColor3f(0, 0, 0);
glVertex2i(194,161);
glVertex2i(203,160);
glVertex2i(204,154);
glVertex2i(216,151);
glVertex2i(212,136);
glVertex2i(211,120);
glVertex2i(187,120);
glVertex2i(186,130);
glVertex2i(179,149);
glVertex2i(181,151);
glVertex2i(191,155);
glEnd();
////--------------------------------lower of manekan----------------
glColor3f(1,1,.83);
glBegin (GL_POLYGON);
glVertex2i(211,120);
glVertex2i(215,110);
glVertex2i(217,95);
glVertex2i(216,85);
glVertex2i(200,84);
glVertex2i(183,85);
glVertex2i(182,96);
glVertex2i(184,105);
glVertex2i(187,115);
glVertex2i(187,120);

glEnd();

glLineWidth(1.5);
glBegin(GL_LINE_LOOP);
glColor3f(0, 0, 0);
glVertex2i(211,120);
glVertex2i(215,110);
glVertex2i(217,95);
glVertex2i(216,85);
glVertex2i(200,84);
glVertex2i(183,85);
glVertex2i(182,96);
glVertex2i(184,105);
glVertex2i(187,115);
glVertex2i(187,120);
glEnd();
//----------------------------upper dress----------------------------

glBegin (GL_POLYGON);
glColor3f(1,0,0);
/* glVertex2i(29,161);*/
/* glVertex2i(38,160);*/
glVertex2i(38,154);
glVertex2i(51,151);
glVertex2i(47,136);
glVertex2i(45,120);
glVertex2i(21,120);
glVertex2i(20,130);
glVertex2i(14,149);
glVertex2i(16,151);
/*glVertex2i(30,155);*/
glEnd();

glLineWidth(1.5);
glBegin(GL_LINE_LOOP);
glColor3f(0, 0, 0);
/*glVertex2i(29,161);*/
/* glVertex2i(38,160); */
glVertex2i(38,154);
glVertex2i(51,151);
glVertex2i(47,136);
glVertex2i(45,120);
glVertex2i(21,120);
glVertex2i(20,130);
glVertex2i(14,149);
glVertex2i(16,151);
/* glVertex2i(28,155);*/
glEnd();

glFlush(); // send any buffered output to
// the OpenGL rendering process
}




void main( int argc, char **argv)
{
glutInit(&argc, argv); // Initialize GLUT
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB ); // Set display mode
glutInitWindowPosition(0,0); // Set top-left display window position
glutInitWindowSize(800,1000); // Set display window width and height
glutCreateWindow("Perfect dress");// Create display window
glClearColor(1, 1, 1, 0.0);
gluOrtho2D(0,290,-20,180);
glutDisplayFunc(draw);
glutMainLoop(); // Display everything and wait

}



0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

العمل ليس سهلا على شخص في بداية مشواره, تعلم الأوبن جي أل بجميع ككل هو الأساس لبداية برمجيات متقدمة, أنا شخصيا لا أظن أنك ستجد الإجابة الكاملة على النت....

انا ابغى اسوي مشروع تصميم فستان وحيكون عندي منيكان وكذا شكل على اليسار ابغى احرك من الاشكال دي واحطها على المنيكان

لا أظنه يرقى إلى مشروع فهو عبارة عن بريمج و حسب..

إعلم أخي أن الدالة Motion تعمل على إرجاع موقع الفأرة فقطططططططط.

وهل ممكن اول ماااحركه وابغى احطه على المنيكان ياخذ مكانو علطول على نفس نقاط المنيكان ...؟
السحب و الإفلات , تحتاج إلى التعرف على الجسم المراد النقر عليه بالفأرة... هناك موضوع خاص هنــــــــــا
انا راسمه شئ مبدئي بس ابغى اعرف استخدام الفنكشن عشان ابدأ فيه
عليك بإلقاء نظرة هنا" المكتبة glut " و هو شيء رائع قام به المعلم "" بكل إحتراماتي له " الشمري.. أو إبحــــــث هنا

فم بقراءة حول مفاهيم pick and selection with opengl..... حاول البحث مثلا في النت عن مقالات تحضى بذلك.

و تعلم مفهوم المكادس في الأوبن جي أل glPushMatrix أو glPushAttrib ......

و بشكل عالم تعلم كل ما يحيط بالأوبن جي أل قبل الخوض في بناء مشاريع.....

أتمنى لك التوفيق.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .