Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Ctest2View::OnDraw(CDC* pDC)
- {
- Ctest2Doc* pDoc = GetDocument();
- ASSERT_VALID(pDoc);
- if (!pDoc)
- return;
- CRect rect;
- GetClientRect(&rect);
- pDC->SetMapMode(MM_ANISOTROPIC);
- pDC->SetWindowExt(2000, 1000);
- pDC->SetViewportExt(rect.Width(), rect.Height());
- pDC->SetWindowOrg(0, 0);
- CBrush brushBackground(RGB(255, 255, 255));
- CBrush* oldBrushBackgorund = pDC->SelectObject(&brushBackground);
- pDC->SetBrushOrg(0, 0);
- pDC->Rectangle(0, 0, 2000, 1000);
- pDC->SelectObject(oldBrushBackgorund);
- brushBackground.DeleteObject();
- POINT centar = {1000, 500};
- DrawPolygon(pDC, centar, 200, 7);
- // TODO: add draw code for native data here
- }
- void Ctest2View::DrawPolygon(CDC *pDC, POINT ptCenter, double radius, int n)
- {
- double _PI = 3.14159265359;
- XFORM Xform, XformOld;
- int prevMode = SetGraphicsMode(pDC->m_hDC, GM_ADVANCED);
- BOOL b = GetWorldTransform(pDC->m_hDC, &XformOld);
- Xform.eM11 = 1.0;
- Xform.eM12 = 0.0;
- Xform.eM21 = 0.0;
- Xform.eM22 = 1.0;
- Xform.eDx = ptCenter.x;
- Xform.eDy = ptCenter.y;
- SetWorldTransform(pDC->m_hDC, &Xform);
- double ugaoRazmak = (2 * _PI) / n;
- double trenutniUgao = ugaoRazmak;
- double Xtacka = sin(trenutniUgao) *radius;
- double Ytacka = cos(trenutniUgao) *radius;
- pDC->MoveTo(Xtacka, Ytacka);
- double pocetnaX = Xtacka, pocetnaY = Ytacka;
- for (int i=0; i<n;i++)
- {
- trenutniUgao += ugaoRazmak;
- pDC->LineTo(Xtacka, Ytacka);
- Xtacka = sin(trenutniUgao) * radius;
- Ytacka = cos(trenutniUgao) * radius;
- }
- pDC->LineTo(pocetnaX, pocetnaY);
- SetWorldTransform(pDC->m_hDC, &XformOld);
- SetGraphicsMode(pDC->m_hDC, prevMode);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement