صفحه 1 از 3 123 آخرآخر
نمایش نتایج 1 تا 40 از 87

نام تاپیک: برنامه ها و مثال های OpenGL

  1. #1
    کاربر دائمی آواتار amin1softco
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    پای آن سرو بلند
    پست
    1,832

    Cool برنامه ها و مثال های OpenGL

    این تاپیک برای این ایجاد شده که دوستان برنامه هایی که نوشتند چه مبتدی چه برنامه هایی که نکات جالبی داره را اینجا قرار بدند تا بقیه دوستان استفاده کنند. خلاصه بیشتر هدف آشنایی بیشتر با ابزار ها کتابخانه ها و نحوه استفاده از اون ها برای کاربران مبتدی تا حرفه ایی است. و بیشتر جنبه تمرینی داره تا مهارت بچه هاسنجیده بشه.
    برای شروع من خودم می خوام یک کلاس مثل glui طراحی کنم تا مثلاً تکست باکس و این قبیل کمپوننت ها رو شبیه سازی کنه. کسی هم نظری داشت بگه

  2. #2

    نقل قول: برنامه ها و مثال های OpenGL

    آقا خیلی خوبه...من با opengl موافقم...شدیدا

    یه مرجع کامل و قابل فهم و روان هم اگه واسه آموزشش داشته باشی که دیگه همه چی ردیفه...

    ممنون...تاپیک خیلی خیلی خوبیه!!!

  3. #3
    کاربر دائمی آواتار amin1softco
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    پای آن سرو بلند
    پست
    1,832

    نقل قول: برنامه ها و مثال های OpenGL

    در این پست یکسری برنامه آموزشی قرار می دم که بدرد اساتید محترم می خوره برای آموزش توابع که در بیشتر اونها با کلیک کردن روی عدد تابع مورد نظر تغییراتش روی صحنه اعمال می شه و بیشتر توابع را هم توضیح داده :







    بچه ها پست اسپم ندید برنامه بگذارید و نکته بگید بازم مرسی

  4. #4
    کاربر دائمی آواتار amin1softco
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    پای آن سرو بلند
    پست
    1,832

    نقل قول: برنامه ها و مثال های OpenGL



    تمام این برنامه ها در فایل های ضمیمه سورسش هست مشکلی بود خبر بدین....
    فایل های ضمیمه فایل های ضمیمه

  5. #5
    کاربر دائمی آواتار amin1softco
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    پای آن سرو بلند
    پست
    1,832

    نقل قول: برنامه ها و مثال های OpenGL

    یکی از برنامه هایی که بر و بچ هوش با اون سر و کار دارند پازل هشت و نوع پیشرفته تر اون مکعب روبیکه که توابه هیورستیکش رو با absolver بدست آوردند. و یکی از کارهای جالب مایکروسافت اینه که یک برنامه داره که با openGL اومده حل کردن این مکعب رو به نمایش گذاشته اطلاعات بیشتر سورس در فایل ضمیمه....


    فایل های ضمیمه فایل های ضمیمه

  6. #6
    کاربر دائمی آواتار amin1softco
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    پای آن سرو بلند
    پست
    1,832

    نقل قول: برنامه ها و مثال های OpenGL

    اول بگم که برنامه قبلی ایرانی ! آقای علی رفیعی برنامه مکعب روبیک رو نوشتند...
    خوب یکی از چیزایی که همه به اون نیاز دارند یک سرپناهه در این برنامه می خواهیم به شما نشون بدیم با توابع ساده openGL چطوری می شه یک خونه نقلی جور کرد دست خانم بچه ها رو گرفت و رفت داخلش و از زندگی لذت برد....

    این برنامه با زبان سی شارپ نوشته شده و قبل از اجرا نیاز به TAO داره... منبع
    تمرین : تبدیلش کنید به زبان سی++
    فایل های ضمیمه فایل های ضمیمه

  7. #7
    کاربر دائمی آواتار amin1softco
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    پای آن سرو بلند
    پست
    1,832

    نقل قول: برنامه ها و مثال های OpenGL

    من می خوام یک برنامه طراحی کنم با سوکت ها (به قولی تحت شبکه) برای os ویندوز که مثلاً کنترلر یک توپ یکجا باشه و خودش در یک برنامه دیگه بعد این کنرلر بتونه توپ را کنترل کنه مثلاً باکلید های جهت نما بعد توپ در برنامه دیگه حرکت کنه البته این مثال بیشتر تریپش به برنامه های شبکه می خوره تا بازی ولی خوب باید چیزه جالبی در بیاد من از حالا شروع می کنم کسی خواست می تونه برنامه رو تحت لینوکس با سوکت های برکلی بنویسه فکر کنم چیزه جالبی بشه :دیییی

    یکسری مثال بدرد بخور :
    http://nccastaff.bournemouth.ac.uk/j...ogramming.html
    آخرین ویرایش به وسیله amin1softco : یک شنبه 14 خرداد 1391 در 21:20 عصر

  8. #8

    نقل قول: برنامه ها و مثال های OpenGL

    دوستان اینم اولین تمرین من
    X^3.png

    HW02.rar

  9. #9

    نقل قول: برنامه ها و مثال های OpenGL

    سلام-این برنامه دوم هست ، امیدوارم مفید باشه:
    g.jpg
    HW03.rar

  10. #10
    کاربر دائمی آواتار amin1softco
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    پای آن سرو بلند
    پست
    1,832

    نقل قول: برنامه ها و مثال های OpenGL

    خوب نزدیک عید نوروز هستیم یک برنامه خیلی جالب دیدم که با نهنگ و سال 91 بی ارتباط نیست گفتم بزارم شاید مفید واقع بشه

    C++‎ & glut در حالت تمام صفحه بهترین کیفیت رو داره
    منبع : http://www.opengl.org/wiki/Code_Resources
    فایل های ضمیمه فایل های ضمیمه

  11. #11
    کاربر دائمی آواتار amin1softco
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    پای آن سرو بلند
    پست
    1,832

    نقل قول: برنامه ها و مثال های OpenGL

    یک مثال خیلی جالب دیدم در مورد قرار دادن یک قسمت فرم در mfc برای ترسیمات openGL که به نظرم خیلی خوبه



    به دومین آموزش اپن جی ال خوش آمدید من تصمیم گرفتم در مورد این موضوع بنویسم چون فکر می کردم جالبه و دیدم که خیلی از افراد منتظر انجام چنین کاری هستند
    پس چرا معطل کنیم. اون به سادگی یک پنجره داخلی در یک دایلوگ نرمال است که می شه در اون اشکال OPENGL رو ترسیم کرد از یک طرف شما OPENGL رو دارید و از طرف دیگه کنترل های استاندارد ویندوز را
    اگر شما نمی تونید تصورش کنید به این پروژه من نگاه کنید.
    بگذارید سریع تر در این موضوع هیجان انگیز شیرجه بزنیم. ;)
    نظریه کاملی در مورد صحبت کردن یک فرد وجود نداره. و خوبه...
    همه چیز با یک پروژه جدید mfc شروع می شه.
    یک پروژه جدید با استفاده از Mfc application wizard ایجاد کنید. گزینه سوم را انتخاب کنید یک برنامه dialog-based در پنجره های(dialog) زیر؟(بعدی) شما می تونید هرچیزی رو که می خواهید عملاً فعال/غیرفعال کنید و در این مورد زیاد مهم نیست.
    شما حالا یک برنامه کوچیک mfc آماده باید داشته باشید. ما با چیزهای مهمه پروژه شما شروع می کنیم یک پنجره کوچیکOPENGL در گوشه.

    یک پنجره OPENGL داخلی
    اوکی شما الان پروژه کوچیک OPENGL خودتون رو دارید ولی ..بعدش چی؟ اول سریع ترین و راحت ترین چیز ;) ساخت dialog در dialog editor. وقتی پروژه ساخته شد این باید اولین چیزی باشه که شما در MSDEV می بینید. شما چطوری دایلوگ کوچیک خودتون رو می چینید بی ربطه.تنها چیزی که ما باید انجام بدیم ساخت یک تکست فیلده که در نگاه اول بی فایده به نظر می رسه. اما در واقع یک قالب برای پنجره OpenGL ما محسوب می شه. پنجره دقیقاً همان اندازه و موقعیت این کنترل استاتیک کوچک رو داره.
    بعداً اگر شما بخواهید موقعیت یا اندازه پنجره را تغییر بدید شما نیازی به تغییر کد خودتون ندارید و فقط کافیه اندازه این تکست فیلد را تغییر بدید.

    اینجا شما دایلوگی که من درست کردم را می بینید. اون داره فقط دوتا تکست فیلد و دو تا باتن در پایین. اینها در نظر گرفته شده تا نمایش بدند چگونه پنجره openGL با کنترل های استاندارد با هم کار می کنند. تنها کنترل مهم تکست فیلد پایینه گوشه چپه. اون هیچ نوشته ایی نداره و در واقع پنهانه.اوکی سپس یک تکست فیلد به دایلوگ اضافه کنید و در جایی که می خواهید پنجره openGL نمایش داده شود قرار دهید. اسمش مهم نیست اما اونو با ID_STATIC as MSDEV پیش فرض فراخوانی نکنید.ما بعداً نمی توانیم موقعیت و اندازه اون رو بدست بیاریم؟!. من به سادگی فراخوانیش می کنم ID_OPENGL_WINDOW. اون یک جعبه است من انتخابش کردم روی تصویر طرف چپ . caption فیلد را پاک کنید و مطمئن شوید که اون نامرئیه (Under properties > Behaviour, تیک حصوصیت Visible را بردارید).
    بنابر این پس از این مرحله ساده ما یک دایلوگ کامل داریم و می تونیم به سمت کد نویسی حرکت کنیم. و یکمی کار سخت تر می شه... اما وحشت نکنید هنوز هم خیلی سخت نیست. کاری که ما باید اول انجام بدیم ساخت یک کلاس جدیده که از CWnd مشتق شده سپس پنجره کوچک openGL در پایین کادر خواهد بود. بنابراین یک کلاس جدید ایجاد کنید و COpenGLControl بنامیدش با CWnd به عنوان کلاس پایه .Click on Insert | New Class... , یا کاری شبیه این.
    مراحل بعدی به این ترتیبه :
    * Create the window * Create an OpenGL rendering context * Setup basic OGL things (viewport, state machine etc.)
    بگذارید کد نویسی را شروع کنیم! اولین چیزی که به انجام آن بسیار نیاز است اضافه کردن متغیر ها و اشیاء به COpenGLControl است.
    برای ساخت یک مکان رندرمحتوی OPENGL ما از OpenGLDevice استفاده خواهیم کرداز قسمت کد ها شما می توانید از توابع خودتون برای ست کردن فرمت پیکسل ها یا کارهای دیگه استفاده کنید. اما من از این کلاس استفاده می کنم چون بسیار ساده است. این سه متغیر عبارتند از : OpenGLDevice openGLDevice (فراموش نکنید هدر ها رو اضافه کنید!), CClientDC* dc محتوای پنجره است و float rotation برای چرخش مثلث که ما قراره در این پنجره کوچک ترسیم کنیم.
    این کد سازنده و مخرب کلاسه :

    COpenGLControl::COpenGLControl()
    {
    dc = NULL;
    rotation = 0.0f;
    }

    COpenGLControl::~COpenGLControl()
    {
    if (dc) //Only delete dc when really allocated
    {
    delete dc;
    }
    }

    اولین مرحله بالا به سادگی انجام شد. اون انجام شده در Create(..) از COpenGLControl تابعی که ما الان ایجاد می کنیم. بنابراین اضافه کنید Create(CRect rect, CWnd* parent) به COpenGLControl.
    این کدشه :
    void COpenGLControl::Create(CRect rect, CWnd *parent)
    {
    //Register window class
    CString className = AfxRegisterWndClass(
    CS_HREDRAW | CS_VREDRAW | CS_OWNDC,
    NULL,
    (HBRUSH)GetStockObject(BLACK_BRUSH),
    NULL);

    //Finally create the window
    CreateEx(
    0,
    className,
    "OpenGL",
    WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
    rect,
    parent,
    0);
    }


    در این تابع ما یک پنجره openGL کوچک ایجاد خواهیم کرد . آن دقیقاً همان اندازه مشخص شده با rect است. در ثانی اون یک کلاس فرزند از parent است که دایلوگ اصلی روی اونه. مرحله بعدی ساخت یک قسمت برای رندر کردن محتوی openGL است . این انجام می شه بوسیله دستگیره پیام message handler برای WM_CREATE . بنابراین دستگیره ایی برای این پیام اضافه می کنیم . و این کدشه :

    int COpenGLControl::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    if (CWnd::OnCreate(lpCreateStruct) == -1)
    return -1;

    dc = new CClientDC(this); //Get device context of window
    openGLDevice.create(dc->m_hDC); //Create opengl rendering context
    InitGL();

    //DONE
    return 0;
    }

    سپس یک دستگیره پیام اضافه می کنیم برای WM_SIZE در COpenGLControl. و ما OpenGL viewport را در اون تنظیم می کنیم. با این کد :

    void COpenGLControl::OnSize(UINT nType, int cx, int cy)
    {
    CWnd::OnSize(nType, cx, cy);

    if (cy == 0)
    {
    cy = 1;
    }

    glViewport(0,0,cx,cy);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

    glOrtho(-1.0f,1.0f,-1.0f,1.0f,1.0f,-1.0f);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    }

    اتفاق خاصی اینجا رخ نداده . viewport همانند یک پروجکشن متعامد(orthogonal projection) در نظر گرفته شده . اینم مثل تمام پروژه های OpenGL است.
    تابع بعدی InitGL() است که وقتی پنجره ساخته شد فراخوانی می شه و این بهترین مکان برای آغازکردن چیزهای مرتبط با OpenGL است.شبیه نورها یا نگاشت بافت ها (texture mapping) .

    void InitGL() را اضافه کنید به COpenGLControl.
    کد:
    void COpenGLControl::InitGL()
    {
    glShadeModel(GL_SMOOTH);
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    glClearDepth(1.0f);
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LEQUAL);
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    }

    یک کد خیلی ساده اینجاست. شما باید بدونید ما داریم اینجا چه کار می کنیم یا شما با کمی اشتباه در این مکان هستید;-). تابع بعدی در واقع تابعی است که سرانجام چیزهایی را روی صفحه ترسیم می کنه. اسمش void DrawGLScene(): است.
    void COpenGLControl::DrawGLScene()
    {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();

    //***************************
    // DRAWING CODE
    //***************************

    //Rotate the triagle
    glRotatef(rotation,0.0f,1.0f,0.0f);

    glBegin(GL_TRIANGLES);
    glColor3f(1.0f,0.0f,0.0f);
    glVertex3f(1.0f,-1.0f,0.0f);
    glColor3f(0.0f,1.0f,0.0f);
    glVertex3f(-1.0f,-1.0f,0.0f);
    glColor3f(0.0f,0.0f,1.0f);
    glVertex3f(0.0f,1.0f,0.0f);
    glEnd();

    SwapBuffers(dc->m_hDC);
    }


    این تابع یک مثلث رنگی چرخان بوسیله درجه rotation به سادگی ترسیم می کنه.اون فراخوانی می کنه تابع بعدی رو. اون یک دستگیره پیام برای WM_PAINT که پیام های پنجره است که هر زمان فراخوانی می شوند پنجره باید رفرش (دوباره ترسیم) شود.
    دستگیره COpenGLControl را اضافه اضافه کنید و کاملش کنید در کدزیر :
    void COpenGLControl::OnPaint() 
    {
    rotation += 0.01f;

    if (rotation >= 360.0f)
    {
    rotation -= 360.0f;
    }

    /** OpenGL section **/

    openGLDevice.makeCurrent();

    DrawGLScene();

    CWnd::OnPaint();
    }

    ابتدا ما rotation را آپدیت می کنیم بنابر این مثلثمون در واقع چرخیده و سپس ما DrawGLScene() را فراخوانی می کنیم که اون اشکال کوچیک را ترسیم می کنه. چیزی که اینجا خیلی مهمه فراخوانی openGLDevice.makeCurrent() است. این تابع اطمینان میده که قبل از ترسیم در پنجره محتوی دستگاه openGL (OpenGL device context)صحیح انتخاب شده .شبیه این که امکان داره ما بیش از یک مکان ترسیمی روی پنجره برای openGL داشته باشیم.
    آخرین و پر اهمیت ترین دستگیره پیام WM_ERASEBKGND که اطمینان میده که صف پیام های دایلوگ سرریز نشده است.
    WM_ERASEBKGND همیشه وقتی که پس زمینه باید پاک بشه فرستاده می شه به پنجره
    این دستگیره رو اضافه کنید به این پیام به COpenGLControl و در کد زیر :
    BOOL COpenGLControl::OnEraseBkgnd(CDC* pDC) 
    {
    //we've erased it - at least we do so
    return TRUE;
    }

    همه این ها برای COpenGLControl بود. کار این کلاس تمام شده. مرحله بعدی بروز رسانی کمی در کلاس پدرش (دایلوگ) است. اوکی بعدش آماده است.

    کلاس دایلوگ The Dialog Class
    چیزه زیادی برای انجام این کار باقی نمونده . فقط کمی کدنویسی و مقایسه با آخرین قسمت ,دشوارترین طاقت فرسا و کشنده, این یک باز کودکانه واقعی است... اول ما یک نمونه از کلاس COpenGLControl را به دایلوگ خودمون اضافه می کنیم . این را انجام بدید از کلاس دایلوگ خودتون (من فراخوانیش کردم اینجا COpenGLDialogDlg با COpenGLDialogDlg.h به عنوان هدر)
    در این قطعه کد :

    //In COpenGLDialogDlg.h
    //..

    //Very important
    #include "OpenGLControl.h"

    class COpenGLDialogDlg : public CDialog
    {
    //Other things..
    //..
    protected:
    //Our instance of COpenGLControl
    COpenGLControl openGLControl;

    //..
    };


    حالا کلاس دایلوگ ما می شناسه نمونه را و ما می تونیم حر کت کنیم به سمت آخرین مرحله . این در OnInitDialog() از COpenGLDialogDlg که باید بطور خودکار بوسیله Mfc wizard انجام بشه .
    اینجا ما پنجره OpenGL خودمون رو آماده کردیم و مکانی که در اون قرار میگیره رو مشخص کردیم.
    آخرین قطعه کد برای امروز ... اینه:

    BOOL COpenGLDialogDlg::OnInitDialog()
    {
    CDialog::OnInitDialog();

    //.. OTHER THINGS ARE DONE ..
    SetIcon(m_hIcon, TRUE);
    SetIcon(m_hIcon, FALSE);

    // TODO

    //Get Size and position of the template textfield we created
    //before in the dialog editor
    CRect rect;
    GetDlgItem(IDC_OPENGL_WINDOW)->GetWindowRect(rect);

    //Convert screen coordinates to client coordinates
    ScreenToClient(rect);
    //Create the OpenGL window using the size and set this dialog as parent
    openGLControl.Create(rect,this);

    return TRUE;
    }

    تمام شد! در این قطعه کد کوچیک شما می بینید چرا تکست فیلدی که قبلاً ایجاد کردیم خیلی مفیده. ما window-rect اونو گرفتیم . اندازه و مکانش روی صفحه و فراخوانی کردیم COpenGLControl::Create(..) با اون به عنوان پارامتر هاش GetDlgItem(IDC_OPENGL_WINDOW) که بر می کردونه یک اشاره گر از CWnd به این کنترل IDC_OPENGL_WINDOW. اگر یادتون باشه ما به قالب تکست فیلد یک نام دادیم و با اون بدون ایجاد یک نمونه جدید می تونیم بهش مراجعه کنیم و اطلاعاتش را بدست بیاریم.
    حالا همه چیز انجام شده! پروژتون رو کامپایل کنید و شما یک پنجره داخلی کوچک OpenGL در دایلوگ استانداردتون خواهید داشت . بهترین چیز اینه که شما مجبور نیستید کدتون را بیشتر از این تغییر بدید اگر شما بخواهید حرکت بدید یا تغییر اندازه بدید پنجره openGL را شما می تونید این برنامه رو گسترش بدید. شما می تونید از این کد پایه برای ایجاد یک باکس اطلاعاتی تعاملی برای یکی از پروژه هاتون با یک لوگو پویا که بوسیله openGL ترسیم می شه استفاده کنید. بنابراین خیلی چیز ها ممکنه.
    اگر شما سئوالات بیشتر یا نظر یا مشکلی شبیه این داشتید می تونید به سادگی برای من میل بزنید یا سئوالتون را در انجمن مطرح کنید. من سعی می کنم به اون ها پاسخ بدم. خوشحال می شم شما رو در کد نویسی و آموزش بعدی ملاقات کنم.

    منبع + توضیحات بیشتر + دانلود : http://steinsoft.net/index.php?site=.../opengl_dialog
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله amin1softco : پنج شنبه 25 اسفند 1390 در 10:23 صبح

  12. #12

    نقل قول: برنامه ها و مثال های OpenGL

    HW05.rar
    اینم یه تمرینه دیگه + جا داره از جناب amin1softco جهت راهنمایی ؛ تشکر ویژه کنم

  13. #13
    کاربر دائمی آواتار amin1softco
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    پای آن سرو بلند
    پست
    1,832

    نقل قول: برنامه ها و مثال های OpenGL

    نقل قول نوشته شده توسط soroushp مشاهده تاپیک
    HW05.rar
    اینم یه تمرینه دیگه + جا داره از جناب amin1softco جهت راهنمایی ؛ تشکر ویژه کنم
    من کمک خاصی نکردم ولی شما استعدادش رو دارید.
    به نظرم می تونید خیلی پیشرفت کنید.

  14. #14

    نقل قول: برنامه ها و مثال های OpenGL

    با سلام، من هم چند تا مقاله درباره OpenGL نوشتم و توی سایتم گذاشتم که خوشحال میشم نظر دوستان متخصص رو بدونم. لینک دریافت مقالات:
    جلسه اول
    جلسه دوم
    جلسه سوم
    جلسه چهارم
    چلسه پنجم
    جلسه ششم
    جلسه هفتم
    موفق باشید.

  15. #15

    نقل قول: برنامه ها و مثال های OpenGL

    من ابتدای راه هستم اما به نظرم برای اونهایی که تاحالا برنامه نویسی opengl نکردند قابل فهم هست ، حداقل برای من که مفیده!

  16. #16

    نقل قول: برنامه ها و مثال های OpenGL

    robocup.jpg
    robocup.rar
    این با d می چرخه و حرکتش هم با timerfunction هست.

  17. #17

    نقل قول: برنامه ها و مثال های OpenGL

    اینم یک هلی کوپتر ساده که به کمک دوست عزیز amin و pouya طراحی شد

    Attachments_2012_04_21.zip

  18. #18

    نقل قول: برنامه ها و مثال های OpenGL

    اینم یک برنامه از فرکتال ، هرچند ابتدایی :

    Fractal.rar

    as.jpg

  19. #19

    Unhappy نقل قول: برنامه ها و مثال های OpenGL

    سلام و خسته نباشید
    من درس گرافیک دارم درس راجع به مانیتورهای رنگی و ... بود حالا که به پایان ترم نزدیک شدیم استاد میگه باید
    پروژه با opengl تحویل بدید
    من با opengl کار نکردم یک هفته بیشتر هم مهلت ندارم
    تورو خدا اگه کسی میتونه کمکم کنه ممنون میشم ازتون

    یک رسم دایره که در زمان اجرا حرکت کنه

  20. #20

    نقل قول: برنامه ها و مثال های OpenGL

    نقل قول نوشته شده توسط marijo0o0n مشاهده تاپیک
    سلام و خسته نباشید
    من درس گرافیک دارم درس راجع به مانیتورهای رنگی و ... بود حالا که به پایان ترم نزدیک شدیم استاد میگه باید
    پروژه با opengl تحویل بدید
    من با opengl کار نکردم یک هفته بیشتر هم مهلت ندارم
    تورو خدا اگه کسی میتونه کمکم کنه ممنون میشم ازتون

    یک رسم دایره که در زمان اجرا حرکت کنه
    سلام نگران نباش خیلی سادس.
    چون این چند روز خودم تحویل پروژه دارم فقط بگو تا کی وقت داری من حتما انجامش میدم .

  21. #21

    نقل قول: برنامه ها و مثال های OpenGL

    نقل قول نوشته شده توسط marijo0o0n مشاهده تاپیک
    سلام و خسته نباشید
    من درس گرافیک دارم درس راجع به مانیتورهای رنگی و ... بود حالا که به پایان ترم نزدیک شدیم استاد میگه باید
    پروژه با opengl تحویل بدید
    من با opengl کار نکردم یک هفته بیشتر هم مهلت ندارم
    تورو خدا اگه کسی میتونه کمکم کنه ممنون میشم ازتون

    یک رسم دایره که در زمان اجرا حرکت کنه
    هدف این تاپیک هم همینه دیگه ، یکی از برنامه ها رو انتخاب کن و روش کار کن اگر سوالی داشتی بپرس

  22. #22

    نقل قول: برنامه ها و مثال های OpenGL

    سلام ندا جون
    نمیدونی چقدر خوشحال شدم من 23 /3 امتحان گرافیک دارم که باید تحویل بدم عزیزم
    نمیدونم چجوری باید ازت تشکر کنم

  23. #23

    نقل قول: برنامه ها و مثال های OpenGL

    نقل قول نوشته شده توسط soroushp مشاهده تاپیک
    هدف این تاپیک هم همینه دیگه ، یکی از برنامه ها رو انتخاب کن و روش کار کن اگر سوالی داشتی بپرس
    سلام این برنامه ها خیلی به نظرم یچیده است من یه چیز ساده تر می خواستم که بتونم روش کار کنم نه این برنامه ها

  24. #24

    نقل قول: برنامه ها و مثال های OpenGL

    سلام ندا جون
    نمیدونی چقدر خوشحال شدم من 23 /3 امتحان گرافیک دارم که باید تحویل بدم عزیزم
    نمیدونم چجوری باید ازت تشکر کنم

  25. #25
    کاربر دائمی آواتار amin1softco
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    پای آن سرو بلند
    پست
    1,832

    نقل قول: برنامه ها و مثال های OpenGL

    ب نظرم شما پیام نوری هستید!!! به تاپیک آموزش openGL مراجعه کنید این برنامه داخلش هست.صفحه 5 فک کنم.

  26. #26

    نقل قول: برنامه ها و مثال های OpenGL

    سلام نه خیر پیام نوری نیستم .ممنون از راهنماییت

  27. #27

    نقل قول: برنامه ها و مثال های OpenGL

    تا اونجایی که سواده من می رسه تو opengl میشه با 2 راه دایره کشید : 1- معادله دایره 2- توابع آماده
    کدام مدنظره شماست ؟

  28. #28

    نقل قول: برنامه ها و مثال های OpenGL

    نقل قول نوشته شده توسط soroushp مشاهده تاپیک
    تا اونجایی که سواده من می رسه تو opengl میشه با 2 راه دایره کشید : 1- معادله دایره 2- توابع آماده
    کدام مدنظره شماست ؟
    بله با این دو راه میشه دایره کشید .فرقی نمیکنه

  29. #29

    نقل قول: برنامه ها و مثال های OpenGL

    از اساتید محترم عذرخواهی می کنم ؛ برای حرکت دایره باید از تابع timerfuction استفاده کنی ، بقیه اش رو سعی کن خودت انجام بدی

    // circle.c
    // OpenGL SuperBible
    // Demonstrates point, line, and polygon smoothing
    // Program by Richard S. Wright Jr.
    // System and OpenGL Stuff

    #include <math.h>
    #include <gl/glut.h>
    #include <stdio.h>

    #define SCREEN_X 800
    #define SCREEN_Y 600
    ///////////////////////////////////////////////////
    int edgeOnly=0;
    void DrawCircle(double radius, int numberOfSides);

    GLUquadricObj *qobj;
    // Called to draw scene
    void RenderScene(void)
    {

    GLfloat x = 700.0f; // Location and radius of moon
    GLfloat y = 500.0f;
    GLfloat r = 50.0f;
    GLfloat angle = 0.0f; // looping variable

    // Clear the window
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    // Everything is white
    glColor3f(1.0f, 1.0f, 1.0f);

    // Draw the "moon"
    glBegin(GL_TRIANGLE_FAN);
    glVertex2f(x, y);
    for(angle = 0; angle < 2.0f * 3.141592f; angle += 0.1f)
    glVertex2f(x + (float)cos(angle) * r, y + (float)sin(angle) * r);
    glVertex2f(x + r, y);
    glEnd();

    //Draw the "ball"
    glPushMatrix();
    glTranslatef(390,117,0);
    glColor3f(1,0,0);
    edgeOnly=1;
    DrawCircle(20, 6);
    glPopMatrix();

    //Draw the "sun"
    glPushMatrix();
    glTranslatef(100,500,0);
    glColor3f(1,1,0);
    edgeOnly=0;
    DrawCircle(100, 200);
    glPopMatrix();


    // Draw distant horizon
    glLineWidth(3.5);
    glBegin(GL_LINE_STRIP);
    glVertex2f(0.0f, 25.0f);
    glVertex2f(50.0f, 100.0f);
    glVertex2f(100.0f, 25.0f);
    glVertex2f(225.0f, 125.0f);
    glVertex2f(300.0f, 50.0f);
    glVertex2f(375.0f, 100.0f);
    glColor3f(1,1,1);
    glVertex2f(460.0f, 25.0f);
    glVertex2f(525.0f, 100.0f);
    glVertex2f(600.0f, 20.0f);
    glVertex2f(675.0f, 70.0f);
    glVertex2f(750.0f, 25.0f);
    glVertex2f(800.0f, 90.0f);
    glEnd();

    //glLineWidth(1.0);
    //Draw the "minicircle1"
    glPushMatrix();
    glTranslatef(200,300,0);
    glColor3f(1,0,0);
    glutWireSphere(50,40,10);
    glPopMatrix();

    //Draw the "minicircle2"
    glPushMatrix();
    glTranslatef(300,300,0);
    glColor3f(0.5,0,0);
    glutSolidSphere(40,80,8);// why?
    glPopMatrix();

    //Draw the "minicircle3"
    glPushMatrix();
    glTranslatef(400,300,0);
    glColor3f(1,1,1);
    glutWireCone(30,20,8,10);
    glPopMatrix();

    //Draw the "minicircle4"
    glPushMatrix();
    glTranslatef(500,300,0);
    glColor3f(1,1,1);
    glutSolidCone(35,20,8,10);
    glPopMatrix();

    //Draw the "minicircle5"
    glPushMatrix();
    glTranslatef(600,300,0);
    glColor3f(0,1,0);
    glutWireTorus(0,40,10,6);
    glPopMatrix();

    //Draw the "minicircle6"
    glPushMatrix();
    glTranslatef(700,300,0);
    glColor3f(1,1,0);
    glutSolidTorus(8,40,5,600);// How?
    glPopMatrix();

    //Draw the "minicircle7"
    glPushMatrix();
    glTranslatef(200,200,0);
    glColor3f(0,0,1);
    qobj=gluNewQuadric();
    gluQuadricDrawStyle(qobj, GLU_POINT);
    gluSphere(qobj,45,80,10);
    glPopMatrix();

    //Draw the "minicircle8"
    glPushMatrix();
    glTranslatef(300,200,0);
    glColor3f(0,0.5,0);
    qobj=gluNewQuadric();
    gluQuadricDrawStyle(qobj, GLU_LINE);
    gluCylinder(qobj,45,30,10,8,20);
    glPopMatrix();

    //Draw the "minicircle9"
    glPushMatrix();
    glTranslatef(400,200,0);
    glColor3f(0,0,0.5);
    qobj=gluNewQuadric();
    gluQuadricDrawStyle(qobj, GLU_FILL);
    gluDisk(qobj,0,30,6,8);
    glPopMatrix();

    //Draw the "minicircle10"
    glPushMatrix();
    glTranslatef(500,200,0);
    glColor3f(1,1,0.5);
    qobj=gluNewQuadric();
    gluQuadricDrawStyle(qobj, GLU_SILHOUETTE);
    gluPartialDisk(qobj,0,50,60,8,0,325);
    glPopMatrix();


    // Swap buffers
    glutSwapBuffers();
    }

    void DrawCircle(double radius, int numberOfSides)
    {
    int vertex;
    // if edge only, use line strips; otherwise , use polygons
    if(edgeOnly)
    glBegin(GL_LINE_STRIP);
    else
    glBegin(GL_POLYGON);

    // calculate each vertex on the circle
    for ( vertex =0;vertex<numberOfSides;vertex++)
    {
    // calculate the angle of current vertex
    // ( vertex # * 2 * PI ) / # of sides
    float angle_c = (float) vertex * 2.0 * 3.14159 / numberOfSides;

    // draw the current vertex at the correct radius
    glVertex2f(cos(angle_c)*radius, sin(angle_c)*radius);

    }

    // if drawing edge only, then need to complete the loop with first vertex
    if(edgeOnly)
    glVertex2f(radius, 0.0);

    glEnd();

    }
    // This function does any needed initialization on the rendering
    // context.

    void SetupRC()
    {
    //int i;

    // Black background
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f );

    // Set drawing color to white
    glColor3f(0.0f, 0.0f, 0.0f);
    }

    void ChangeSize(int w, int h)
    {
    // Prevent a divide by zero
    if(h == 0)
    h = 1;

    // Set Viewport to window dimensions
    glViewport(0, 0, w, h);

    // Reset projection matrix stack
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

    // Establish clipping volume (left, right, bottom, top, near, far)
    gluOrtho2D(0.0, SCREEN_X, 0.0, SCREEN_Y);

    // Reset Model view matrix stack
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    }

    int main(int argc, char* argv[])
    {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(800, 600);
    glutCreateWindow("My Moon");
    glutReshapeFunc(ChangeSize);
    glutDisplayFunc(RenderScene);
    SetupRC();
    printf("This program represents some methods for circle drawing\n");

    glutMainLoop();

    return 0;
    }

    این برنامه رو اجرا کن ببین ،

  30. #30

    نقل قول: برنامه ها و مثال های OpenGL

    مسخره میکنی من که اولش گفتم بلد نیستم دیگه چرا ....

  31. #31

    نقل قول: برنامه ها و مثال های OpenGL

    [Linker error] undefined reference to `WinMain@16'
    ld returned 1 exit status
    C:\Dev-Cpp\Makefile.win [Build Error] [Project1.exe] Error 1


    ربطی به این برنامه نداره کلا هر برنامه ای داخلش اجرا میکنم این error ها رو میده؟برای چی هستش؟؟؟

  32. #32

    نقل قول: برنامه ها و مثال های OpenGL

    چند تا پست قبل جناب MMSHFE چند تا فایل آموزشی گذاشته کل اش رو دانلود کن ، حتما متوجه میشی

  33. #33

    نقل قول: برنامه ها و مثال های OpenGL

    بالاخره چی شد؟
    تونستی؟
    من با 1 راه خیلی ساده مینویسم که خودتم متوجه بشی.
    کاش استاد ما هم انقدر ساده میگرفت.
    امروز پروژه Open gl خودم failed شد نمیدونم چیکار کنم؟

  34. #34

    نقل قول: برنامه ها و مثال های OpenGL

    نقل قول نوشته شده توسط neda_1367_sh مشاهده تاپیک
    بالاخره چی شد؟
    تونستی؟
    من با 1 راه خیلی ساده مینویسم که خودتم متوجه بشی.
    کاش استاد ما هم انقدر ساده میگرفت.
    امروز پروژه Open gl خودم failed شد نمیدونم چیکار کنم؟
    میشه از پروژت عکس بگیری ببینیم چه کردی ؟

  35. #35

    نقل قول: برنامه ها و مثال های OpenGL

    نقل قول نوشته شده توسط soroushp مشاهده تاپیک
    میشه از پروژت عکس بگیری ببینیم چه کردی ؟
    پروژه خودمو میگی؟
    میزارم تو پست بازی مسیر یابی با open gl

  36. #36

    نقل قول: برنامه ها و مثال های OpenGL

    نقل قول نوشته شده توسط neda_1367_sh مشاهده تاپیک
    بالاخره چی شد؟
    تونستی؟
    من با 1 راه خیلی ساده مینویسم که خودتم متوجه بشی.
    کاش استاد ما هم انقدر ساده میگرفت.
    امروز پروژه Open gl خودم failed شد نمیدونم چیکار کنم؟
    اخی چرا؟
    نه بابا من هر برنامه ای که اجرا می کنم ازم error میگیره حتی همین کد برنامه هایی که دوستان محبت کردن و برام ارسال کردن اجراشون میکنم خطا میگیره
    ولی یه پروژه آماده که استاد خودش بهمون داد به عنوان نمونه اجرا میشه
    نمیدونم باید چکار کنم

  37. #37

    نقل قول: برنامه ها و مثال های OpenGL

    نقل قول نوشته شده توسط marijo0o0n مشاهده تاپیک
    اخی چرا؟
    نه بابا من هر برنامه ای که اجرا می کنم ازم error میگیره حتی همین کد برنامه هایی که دوستان محبت کردن و برام ارسال کردن اجراشون میکنم خطا میگیره
    ولی یه پروژه آماده که استاد خودش بهمون داد به عنوان نمونه اجرا میشه
    نمیدونم باید چکار کنم
    ببخشید ولی شما فایل های glut رو در مسیرهای مربوطه paste کرده اید؟
    console application انتخاب میکنید؟
    شرمنده چون گفتی بلد نیستی این سوالا رو میپرسم.

  38. #38
    کاربر دائمی آواتار amin1softco
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    پای آن سرو بلند
    پست
    1,832

    نقل قول: برنامه ها و مثال های OpenGL

    http://s3.picofile.com/file/7394041826/dev.zip.html
    این فایل رو دانلود کنید یک فایل آموزشی + برنامه کامل dev برای اجرای glut است. فکر کنم مشکلتون رو برطرف کنه.

  39. #39

    نقل قول: برنامه ها و مثال های OpenGL

    نقل قول نوشته شده توسط neda_1367_sh مشاهده تاپیک
    ببخشید ولی شما فایل های glut رو در مسیرهای مربوطه paste کرده اید؟
    console application انتخاب میکنید؟
    شرمنده چون گفتی بلد نیستی این سوالا رو میپرسم.
    خواهش میکنم "اره به خدا تمام این کارا رو هم انجام دادم اون 3 تا فایل ها رو هم در درایو c مسیرهای خودشون کپی کردم
    از project option اون 3 فایل رو انتخاب کردم

  40. #40

    نقل قول: برنامه ها و مثال های OpenGL

    نقل قول نوشته شده توسط marijo0o0n مشاهده تاپیک
    خواهش میکنم "اره به خدا تمام این کارا رو هم انجام دادم اون 3 تا فایل ها رو هم در درایو c مسیرهای خودشون کپی کردم
    از project option اون 3 فایل رو انتخاب کردم
    1 نمونه برات میفرستم ببین اجرا میشه.

صفحه 1 از 3 123 آخرآخر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •