پروژه میله پرچم میدان سه بعدی 3D یکی از پروژه های محبوب و جالب در برنامه نویسی گرافیکی به کمک OpenGL است. برای شبیه سازی پروژه میله پرچم میدان در سی شارپ از کتابخانه گرافیکی اپن جی ال OpenGL استفاده شده است. این کتابخانه در قالب چارچوب Tao.OpenGl به Microsoft Virtual Studio افزوده می شود تا بتوان از قابلیت های گرافیکی OpenGL در سی شارپ استفاده کرد.
تیم برنامه نویسی پی استور یکی از اولین گروههای تشکیل شده در مجموعه آموزشی پی استور میباشد. این تیم از اساتید مجرب و فارغ التحصیلان رشتههای فنی و مهندسی تشکیل شده که در زمینههای مختلف برنامهنویسی و تهیه سورس کد فعال هستند.
پروژه میله پرچم میدان در OpenGL در سی شارپ
برای شبیه سازی پروژه میله پرچم میدان در سی شارپ از کتابخانه گرافیکی اپن جی ال OpenGL استفاده شده است. این کتابخانه در قالب چارچوب Tao.OpenGl به Microsoft Virtual Studio افزوده می شود تا بتوان از قابلیت های گرافیکی OpenGL در سی شارپ استفاده کرد.
TAO یک کتابخانه است که تمام توابع OpenGL را به Net. ارجاع می دهد. به این ترتیب شما از OpenGL در .NET استفاده می کنید. این پروژه بسیار مدولار است. این بدان معنی است که هر جسم تقریبا مستقل است. هر شی به طور واقعی شامل تمام منطق کاری خود است، بنابراین شما می توانید با بسیاری از وابستگی ها در سراسر پروژه آشنا شوید.
توضیحات سورس کد
پروژه میله پرچم میدان دارای 5 کلاس و یک فرم می باشد. که در ادامه به توضیح آنها می پردازیم:
- کلاس SkyBox.cs
این کلاس برای طراحی آسمان و کوه هایی است که در پروژه نمایشی مشاهده می کنید، اساسا یک جعبه با تصاویر است. این تکنیک در 90 درصد از بازیهایی که امروزه مشاهده می کنید استفاده می شود، البته با استفاده از تکنیک های دیگر، آن را با واقعیت سازگاری بیشتر ترکیب می کند. نگاهی به چگونگی شکل گیری بخش skybox می اندازیم.
Gl.glEnable(Gl.GL_TEXTURE_2D); // enable opengl texturing Gl.glBindTexture(Gl.GL_TEXTURE_2D,ContentManager.GetTextureByName ("back.bmp")); //enabling texture for the portion of the skybox Gl.glBegin(Gl.GL_QUADS); Gl.glNormal3d(-1, 1, 1); Gl.glTexCoord2f(1.0f, 0.0f); Gl.glVertex3d(x + width, y, z); Gl.glNormal3d(-1, -1, 1); Gl.glTexCoord2f(1.0f, 1.0f); Gl.glVertex3d(x + width, y + height, z); Gl.glNormal3d(1, -1, 1); Gl.glTexCoord2f(0.0f, 1.0f); Gl.glVertex3d(x, y + height, z); Gl.glNormal3d(1, 1, 1); Gl.glTexCoord2f(0.0f, 0.0f); Gl.glVertex3d(x, y, z); Gl.glEnd();
با استفاده از Gl.glVertex3d نقطه ای از مربع روی صفحه را رسم می کنیم، با Gl.glTexCoord2f به OpenGL می گویم که در آن تصویر روی مربع خواهد بود و با Gl.glNormal3d بهopenGL جهت مربع را می گوییم. تمام این تماس ها بین Gl.glBegin (Gl.GL_QUADS) و Gl.glEnd () ساخته شده است.
- کلاس Plaza.cs
این کلاس نقاشی از میدان را مدیریت می کند که اساسا برای طراحی مدل 3D با بافت است. این فرایند کپسوله شده است، بنابراین شما فقط این را در تابع ایجاد مشاهده می کنید:
m = ContentManager.GetModelByName("plaza.3DS"); // get the model m.CreateDisplayList(); // this loads the model in opengl memory(displays lists)
و تابع رسم بصورت زیر است:
Gl.glPushMatrix(); Gl.glTranslatef(0, 1.4f, 0); Gl.glScalef(0.2f, 0.2f, 0.2f); m.DrawWithTextures(); Gl.glPopMatrix();
- کلاس Flag.cs
پرچم شبکه ای از نقاط است که توسط یک تابع سینوسی ضرب می شود و به همین دلیل یک تابع سینوسی برای حرکت پرچم تعبیه شده است.
for (int x = 0; x < 47; x++) { // Loop Through The Y Plane for (int y = 0; y < 10; y++) { // Apply The Wave To Our Mesh points[x, y, 0] = (float)((x / 5.0f) - 0.1f); points[x, y, 1] = (float)((y / 1.125f) - 0.1f); points[x, y, 2] = (float)(Math.Sin(Helper.DegreeToRad(((x/ 5.0f) * 40.0f)) * 2.0f)); } }
- کلاس Camera.cs
این کلاس برای دست زدن به حرکت دوربین است. دوربین دید اول شخص دارد. ایده این است که ماوس را در مرکز صفحه قرار دهید و هر حرکت موشی در X و Y را به چرخش های زاویه ای ترجمه کنید و سپس ماوس را دوباره روی مرکز صفحه قرار دهید. همچنین دوربین قبل از حرکت در جهت، مدلی برخورد را نمایش می دهد. در اینجا یک نمونه است:
if (!Collision.CheckCollision(new Point3D(-newEyeX, -newEyeZ, 0))) { eyex = newEyeX; eyez = newEyeZ; }
- کلاس MainClass.cs and Mainform.cs
Mainclass کلاس مدیریت است، شامل تمام اشیاء خواهد شد که بر روی صفحه کشیده می شود.
public void DrawScene() { plaza.Draw(); sky.Draw(); flag.Draw(); //DebugMode.WriteCamaraPos(200, 200); //work only in 32bits system Collision.DrawColissions(); }
Mainform فرم ویندوز است که این پروژه را نمایش می دهد. این شامل تایمر برای طراحی و به روز رسانی صحنه است.
تصاویری از خروجی پروژه
ویدئوی معرفی
درباره محصول
این محصول سورس پروژه میله پرچم میدان بصورت سه بعدی 3D در OpenGL با استفاده از برنامه نویسی #C است که در microsoft visual studio 2013 نوشته شده است. پروژه توسط کارشناسان پی استور تست و بررسی شده است و مورد تایید پی استور می باشد. این محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود پروژه آن را خریداری کنید. به محض خریداری لینک دانلود در دسترس خواهد بود.
مباحث مرتبط با این موضوع
اطلاعات تکمیلی محصول
نام محصول: | پروژه میله پرچم میدان در OpenGL در سی شارپ #C |
---|---|
نوع محصول: | سورس کد |
حجم فایل: | 4.8 مگابایت |
فرمت فایل: | sln. در قالب ویژوال استودیو |
قابل اجرا در: | Microsoft Visual Studio 2013 و بالاتر |
تضمین کیفیت و گارانتی بازگشت هزینه
توجه: کیفیت این محصول توسط پی استور تضمین شده و در صورت عدم رضایت از محصول، به انتخاب شما:
- ۱۰۰ درصد مبلغ پرداختی در حساب کاربری شما شارژ میشود.
- و یا 80 درصد مبلغ پرداختی به حساب بانکی شما عودت داده میشود.
پروژه میله پرچم میدان در OpenGL در سی شارپ #C
حجم فایل: | 4.8 مگابایت |
---|---|
فرمت فایل | sln. در قالب ویژوال استودیو |
هماهنگی با: | Microsoft Visual Studio 2013 و بالاتر |
تاکنون 849 نفر این محصول را تهیه کرده اند و 2 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
پروژه میله پرچم میدان در OpenGL در سی شارپ #C
هزینه سفارش: 129,000 تومان
حجم فایل: | 4.8 مگابایت |
---|---|
فرمت فایل | sln. در قالب ویژوال استودیو |
هماهنگی با: | Microsoft Visual Studio 2013 و بالاتر |
2 بازخورد (مشاهده نظرات)
هزینه سفارش: 129,000 تومان
پیرمحمدی
پروژه قابل قبولی بود. ممنون
نجیمه
سلام ممنون از پروژه خوبتون عالیه