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

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 13

نام تاپيک: win32_direct x

  1. #1
    داره خودمونی میشه blossom111's Avatar
    تاريخ عضويت
    Mar 2013
    پست ها
    55

    9 win32_direct x

    سلام

    آموزش دایرکت ایکس رو با زبان C++سراغ ندارید؟

    برای یادگیری دایرکت باید win32رو هم بلد بود؟

    شما برنامه ای رو که دو خط به هم برخورد کنند و تبدیل به یک حرف مثل A بشوند را سراغ ندارید یا بلد نیستید یا کسی را سراغ ندارید که بلد باشد؟

    هر کدومو میدونید ج بدید

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    البته ++VC که خیلی مرتبط به این بخش نیست و از این نظر در جای خیلی مناسبی سوال تان را مطرح نکرده اید.
    برای سرنخ برنامه نویسی DirectX در ++VC میتوانید بسته زیر را دانلود و مثال هایش و مطالب مرتبط را در اینترنت پیگیری کنید:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    در زبان های #C و VB.Net هم که مرتبط با این بخش است میتوانید از SharpDX استفاده کنید که لایه Managed بسیار نازکی روی DirectX است.
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    در مورد آن ترسیم دو خط هم اگر دستورات موتور گرافیکی دوبعدی +GDI برایتان کافی باشد به کدهای ساده ای مانند این خواهید رسید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    شب خوش.

  3. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  4. #3
    داره خودمونی میشه blossom111's Avatar
    تاريخ عضويت
    Mar 2013
    پست ها
    55

    پيش فرض

    در تاپیک های دیگر سوالم را مطرح نمودم اما کسی پاسخ گو نمی باشد.
    SDKرا نیز دانلود کرده بودم اما مثال هایش خیلی سخت است.

    خیلی ممنون از راهنماییتان اما پس از رسم این 2خط چگونه باید آنها را به هم برخورد داد و تبدیل به حرف نمود؟؟؟

    و در مورد win32:
    آموزشی را دریافت نمودم در رابطه با آموزش دایرکت که درمحیط win32 بود
    حال نمدانم لزومی وجود دارد که قبل از یادگیری دایرکت نیز حتما باید win32 را یاد بگیرم؟؟؟؟؟؟؟؟

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

    باتشکر وامتنان

  5. #4
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    اما پس از رسم این 2خط چگونه باید آنها را به هم برخورد داد و تبدیل به حرف نمود؟؟؟
    دقیقا منظورتان چیست، این کد همین الآن شکلی مانند 8 فارسی رسم میکند، و هر دو خط در نقطه (100,50) به هم میرسند، یعنی این به معنی برخورد دو خط نیست؟!

    حال نمدانم لزومی وجود دارد که قبل از یادگیری دایرکت نیز حتما باید win32 را یاد بگیرم؟
    پروژه های Win32 در ++VC در واقع شامل چکیده ترین حداقل های برنامه نویسی در ویندوز و بدون کتابخانه های کمکی اضافه است.
    به عنوان نمونه چگونگی کار کردن با API های خواندن حرکت ماوسس و فرامین کیبورد و خواندن فایلها به گمانم حدس میزنم در DirectX نباشد و احتمالاً شما را نیازمند بلد بودن کار تحت پروژه های Win32 و چگونگی اتصال به API های هسته ویندوز میکند.
    ضمن اینکه بظاهر منطقی است که در هر کاری باید با پلتفرم پایه آشنا باشد.

    من سالها قبل این SDK را دانلود و نگاهی کرده بودم، ولی چون در حیطه تخصص من نبود (C#, CLR, dotNet) وقتی رویش نگذاشتم، پیشنهاد میکنم نگاه دقیق تری به گدها بیاندازید، منبع خوبی است.
    بحرحال مجدد باید تاکید کنم که سوال شما در حیطه اطلاعات من نیست و البته به بخش Net Framework هم مرتبط نیست.
    موفق باشید.

  6. #5
    داره خودمونی میشه blossom111's Avatar
    تاريخ عضويت
    Mar 2013
    پست ها
    55

    پيش فرض

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

    باز هم سپاسگزارم
    جای تعجب دارد که در زمینه تخصصتان نیست اما این گونه پاسخ میدهید

    اگر در زمینه تخصصتان بود چگونه جواب میدادید
    از این پس سعی میکنم سوالاتم را از شما بپرسم
    روز معلم را نیز به شما تبریک میگویم
    چرا که نقل از علی (ع)است که :هر کس یک کلمه به من بیاموزد مرا بنده خویش کرده است.


    امیدوارم همیشه خوب و شاد باشید
    باز هم منتظر هستم اگر راه حلی پیدا شد اطلاع دهید

  7. #6
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    باید اول 2تا خط جدا باشند بعد حرکت کرده و آنگاه به هم برخورد نمایند و تبدیل به یک حرف شوند
    مطلب خاصی ندارد، فقط باید از یک تایمر استفاده کنید که خطوط را هربار با موقعیت متفاوتی ترسیم کنید تا به نقطه نهایی برسید.
    حتی میتوانید آرایه ای مرنبط با انیمیشن این نقاط داشته باشید و هر درسررسید تایمر هربار مختصات عنصر بعدی را رسم کنید
    و...

    اگر در انجام آن در زبان #C یا VB.Net و در محیط Framework مشکلی داشتید، طبیعتاً قابل حل است...

  8. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  9. #7
    داره خودمونی میشه blossom111's Avatar
    تاريخ عضويت
    Mar 2013
    پست ها
    55

    پيش فرض

    مشکل این برنامه چیه و چرا هیچی نشون نمیده؟
    جواب بدید لطفا
    [CPP]


    #include <windows.h>
    #include <windowsx.h>
    #include <d3d9.h>




    #define SCREEN_WIDTH 800
    #define SCREEN_HEIGHT 800




    #pragma comment (lib, "d3d9.lib")




    LPDIRECT3D9 d3d;
    LPDIRECT3DDEVICE9 d3ddev;
    LPDIRECT3DVERTEXBUFFER9 v_buffer = NULL;
    D3DPRIMITIVETYPE D3DPT_PointLIST;


    void initD3D(HWND hWnd);
    void render_frame(void);
    void cleanD3D(void);
    void init_graphics(void);


    struct CUSTOMVERTEX {FLOAT X, Y, Z, RHW; DWORD COLOR;};
    #define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)



    LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);






    int WINAPI WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
    {
    HWND hWnd;
    WNDCLASSEX wc;


    ZeroMemory(&wc, sizeof(WNDCLASSEX));


    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.lpszClassName = L"WindowClass";


    RegisterClassEx(&wc);


    hWnd = CreateWindowEx(NULL,
    L"WindowClass",
    L"Our Direct3D Program",
    WS_OVERLAPPEDWINDOW,
    0, 0,
    SCREEN_WIDTH, SCREEN_HEIGHT,
    NULL,
    NULL,
    hInstance,
    NULL);


    ShowWindow(hWnd, nCmdShow);




    initD3D(hWnd);





    MSG msg;


    while(TRUE)
    {
    while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }


    if(msg.message == WM_QUIT)
    break;


    render_frame();
    }




    cleanD3D();


    return msg.wParam;
    }


    LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    switch(message)
    {
    case WM_DESTROY:
    {
    PostQuitMessage(0);
    return 0;
    } break;
    }


    return DefWindowProc (hWnd, message, wParam, lParam);
    }




    // this function initializes and prepares Direct3D for use
    void initD3D(HWND hWnd)
    {
    d3d = Direct3DCreate9(D3D_SDK_VERSION);


    D3DPRESENT_PARAMETERS d3dpp;


    ZeroMemory(&d3dpp, sizeof(d3dpp));
    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.hDeviceWindow = hWnd;
    d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
    d3dpp.BackBufferWidth = SCREEN_WIDTH;
    d3dpp.BackBufferHeight = SCREEN_HEIGHT;


    d3d->CreateDevice(D3DADAPTER_DEFAULT,
    D3DDEVTYPE_HAL,
    hWnd,
    D3DCREATE_SOFTWARE_VERTEXPROCESSING,
    &d3dpp,
    &d3ddev);


    init_graphics();
    }




    void render_frame(void)
    {
    d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);


    d3ddev->BeginScene();



    d3ddev->SetFVF(CUSTOMFVF);



    d3ddev->SetStreamSource(0, v_buffer, 0, sizeof(CUSTOMVERTEX));




    d3ddev->DrawPrimitive(D3DPT_PointLIST, 0, 1);


    d3ddev->EndScene();


    d3ddev->Present(NULL, NULL, NULL, NULL);
    }






    void cleanD3D(void)
    {
    v_buffer->Release();
    d3ddev->Release();
    d3d->Release();
    }






    void init_graphics(void)
    {
    // create the vertices using the CUSTOMVERTEX struct
    CUSTOMVERTEX vertices[] =
    {
    { 20.0f, 20.f, 10.f,.05f, D3DCOLOR_XRGB(0, 0, 255), },
    { 20.0f,20.0f, 0.5f, .05f, D3DCOLOR_XRGB(0, 255, 0), },
    };


    // create a vertex buffer interface called v_buffer
    d3ddev->CreateVertexBuffer(2*sizeof(CUSTOMVERTEX),
    0,
    CUSTOMFVF,
    D3DPOOL_MANAGED,
    &v_buffer,
    NULL);


    VOID* pVoid; // a void pointer


    // lock v_buffer and load the vertices into it
    v_buffer->Lock(0, 0, (void**)&pVoid, 0);
    memcpy(pVoid, vertices, sizeof(vertices));
    v_buffer->Unlock();
    }


    [/CPP]

  10. #8
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    در خصوص کد فوق (VC + DirectX) من نمیتوانم کمکتان کنم.

    اگر بخواهم در محدوده اطلاعات اندک خودم کمکتان کنم، میتوانم پروژه ای را با زبان #C و برمبنای SharpDX و DirectX برایتان بگذارم.

    بسته دانلود شامل سورسی کوتاه و exe اجرایی برنامه است.
    برای اجرای برنامه در سیستم عامل های قدیمی تر Win8 باید از نصب بودن [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] و [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مطمئن شوید.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در ضمن در کد قسمتی مشخص شده که اگر عدد صفر گذاشته شود حرکت رفت و برگشتی تکرار نخواهد شد.

    لینک دانلود موقت:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    درنهایت لازم به ذکر است که برای نمایش صحیح و چپ به راست کدهای برنامه نویسی در محیط تالارگفتگو میتوانید در زمان درج مطالب از دکمه (#) در نوار ابزار استفاده کنید.
    موفق باشید.

  11. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  12. #9
    داره خودمونی میشه blossom111's Avatar
    تاريخ عضويت
    Mar 2013
    پست ها
    55

    پيش فرض

    خیلی سلام

    مشکل برنامه ام حل شد اما نمی دانم چگونه هم زمان چند خط رسم نمایم

    زمانیکه چند خط را تعریف میکنم تنها خط اولی رسم میشود
    کسی یا سایتی را نمیشناسید که در این زمینه کمکم کند؟

    متشکرم

  13. #10
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام مجدد
    اما نمی دانم چگونه هم زمان چند خط رسم نمایم
    احتمالاً باید با تکرار خطوط زیر در متد render_frame مشکلتان حل شود!
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کسی یا سایتی را نمیشناسید که در این زمینه کمکم کند؟
    بحرحال اگر در تالار C همین سایت امتحانی کنند ضرری ندارد و با مباحث شما مرتبط تر است:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    موفق باشید.

  14. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •