• 5- Mustaqil ish Bajardi: SUVANOV URALBEK Qabul qildi: QARSHI
  • K I s guruh talabasining dasturlash fanidan 5- mustaqil ish




    Download 326,25 Kb.
    Pdf ko'rish
    bet1/5
    Sana01.06.2024
    Hajmi326,25 Kb.
    #258786
      1   2   3   4   5
    Bog'liq
    5-Mustaqil ish Dasturlash 2



    O’ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR 
    VAZIRLIGI
    MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT
    TEXNOLOGIYALARI UNIVERSITETI
    QARSHI FILIALI
    Kompyuter injiniring FAKULTETI
     
    K I - 1 3 - 2 2 s GURUH TALABASINING
    DASTURLASH 2
    FANIDAN

    5- Mustaqil ish
     
    Bajardi: SUVANOV URALBEK 
    Qabul qildi:
    QARSHI
     


    Visual C++ ning grafik imkoniyatlari (grafik
     
    holat, tasvirlarni va funksiya grafiklarini
     
    qurish). 
     
    Visual C++ muhitida grafik imkoniyatlar keng va qulay, ular yordamida grafik 
    holatlarni, tasvirlarni va funksiya grafiklarini qurish mumkin. Bu imkoniyatlar 
    asosan MFC (Microsoft Foundation Classes) va GDI (Graphics Device Interface) 
    yordamida amalga oshiriladi. Quyida Visual C++ muhitida grafik imkoniyatlar 
    haqida batafsil ma'lumot keltiriladi. 
    ### Grafik holat 
    Grafik holatni boshqarish asosan CView yoki CWnd sinflaridan foydalanadi. Bu 
    sinflar orqali grafik amallarni bajarish mumkin. 
    #### MFC-da grafik holatni yaratish 
    Grafik holatni yaratish uchun avvalo CView sinfidan meros olish kerak: 
    ```cpp 
    class CMyView : public CView 

    protected: 
    DECLARE_DYNCREATE(CMyView) 
    public: 
    virtual void OnDraw(CDC* pDC); 
    }; 
    ``` 
    `OnDraw` funksiyasi grafik obyektlarni chizish uchun ishlatiladi. `CDC` (Device 
    Context) bu yerda grafik holatni boshqaradi. 
    Oddiy chiziq chizish 
    Quyida oddiy chiziq chizish misoli keltirilgan: 
    ```cpp 
    void CMyView::OnDraw(CDC* pDC) 

    pDC->MoveTo(10, 10); 
    pDC->LineTo(200, 200); 

    ``` 


    Tasvirlarni chizish 
    Tasvirlarni (images) chizish uchun ham MFC va GDI imkoniyatlaridan 
    foydalaniladi. 
    Bitmap tasvirlarni chizish 
    Bitmap tasvirlarni chizish uchun `CBitmap` sinfi ishlatiladi. 
    1. **Tasvirni yuklash**: 
    ```cpp 
    CBitmap bitmap; 
    bitmap.LoadBitmap(IDB_MYBITMAP); 
    ``` 
    2. **Tasvirni chizish**: 
    ```cpp 
    void CMyView::OnDraw(CDC* pDC) 

    CDC memDC; 
    memDC.CreateCompatibleDC(pDC); 
    CBitmap bitmap; 
    bitmap.LoadBitmap(IDB_MYBITMAP); 
    CBitmap* pOldBitmap = memDC.SelectObject(&bitmap); 
    BITMAP bm; 
    bitmap.GetBitmap(&bm); 
    pDC->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &memDC, 0, 0, SRCCOPY); 
    memDC.SelectObject(pOldBitmap); 

    ``` 
    ### Funksiya grafiklarini chizish 
    Matematik funksiya grafiklarini chizish uchun C++ tilida matematik hisoblashlarni 
    amalga oshirgan holda natijalarni chizish mumkin. 
    #### Funksiya grafikasini chizish 
    Masalan, sinus funksiya grafikasi: 
    ```cpp 
    void CMyView::OnDraw(CDC* pDC) 

    CRect rect; 


    GetClientRect(&rect); 
    int width = rect.Width(); 
    int height = rect.Height(); 
    CPen pen(PS_SOLID, 1, RGB(0, 0, 255)); 
    CPen* pOldPen = pDC->SelectObject(&pen); 
    int centerX = width / 2; 
    int centerY = height / 2; 
    pDC->MoveTo(0, centerY); 
    for (int x = 0; x < width; x++) 

    double angle = (x - centerX) / 40.0; 
    int y = centerY - (int)(100 * sin(angle)); 
    pDC->LineTo(x, y); 

    pDC->SelectObject(pOldPen); 

    ``` 
    To'liq misol: Sinus grafikasini chizish 
    Quyida to'liq misol keltirilgan, bunda sinus grafikasi chiziladi. 
    1. **Loyiha yaratish**: 
    - Visual Studio'da yangi MFC App loyihasini yarating va "Single Document" 
    rejimini tanlang. 
    2. **CMyView klassini yaratish va sozlash**: 
    - `CMyView` klassini yarating va `OnDraw` funksiyasini sozlang. 
    3. **OnDraw funksiyasini tahrirlash**: 
    ```cpp 
    void CMyView::OnDraw(CDC* pDC) 

    CRect rect; 
    GetClientRect(&rect); 
    int width = rect.Width(); 
    int height = rect.Height(); 


    CPen pen(PS_SOLID, 1, RGB(0, 0, 255)); 
    CPen* pOldPen = pDC->SelectObject(&pen); 
    int centerX = width / 2; 
    int centerY = height / 2; 
    pDC->MoveTo(0, centerY); 
    for (int x = 0; x < width; x++) 

    double angle = (x - centerX) / 40.0; 
    int y = centerY - (int)(100 * sin(angle)); 
    pDC->LineTo(x, y); 

    pDC->SelectObject(pOldPen); 

    ``` 
    Xulosa 
    Visual C++ muhitida grafik imkoniyatlar MFC va GDI yordamida amalga oshiriladi. 
    Bu imkoniyatlar yordamida grafik holatlarni, tasvirlarni va funksiya grafiklarini 
    osongina chizish mumkin. Bu jarayonlar uchun CView yoki CWnd sinflaridan meros 
    olish va `OnDraw` funksiyasini sozlash talab etiladi. Visual Studio muhiti bu 
    jarayonlarni samarali va qulay qiladi. 



    Download 326,25 Kb.
      1   2   3   4   5




    Download 326,25 Kb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    K I s guruh talabasining dasturlash fanidan 5- mustaqil ish

    Download 326,25 Kb.
    Pdf ko'rish