vc 座標系統與影射模式

 //座標系統與影射模式
 
 通過自定義映射模式 ,將客戶窗口映射爲 一個平面直角座標系,即原點在客戶區中心,
 原點向左爲 x軸負方向,原點向上爲y軸正方向。在客戶窗口繪製一條正弦曲線,幅度爲客戶區高度的一半,
 顯示 4個週期
 //設置映射模式爲 MM_ANISOTROPIC
 pDC->SetMapMode(MM_ANISOTROPIC);

 //設置窗口左上角座標(-4*pi,2),放大1000倍,下同
 pDC->SetWindowOrg(int(-4000*3.14), 2000);
 //設置窗口度量--總大小
 pDC->SetWindowExt(int (8000*3.14), -4000);
 //獲得客戶區矩形
 CRect rc;
 GetClientRect(rc);
 //設置視口左上角座標
 pDC->SetViewportOrg(0, 0);
 //設置視口度量
 pDC->SetViewportExt(rc.Width(), rc.Height());
 //創建藍色實線畫畫筆
 CPen pen(PS_SOLID, 1, RGB(0, 0, 255)), pen1(PS_DASH, 1, RGB(128, 0, 0)),*pOldPen;
 pOldPen = pDC->SelectObject(&pen);
 pDC->MoveTo(int(-4000*3.14), 0);
 for(double x = (-4*3.14); x <=0; x += 0.01)
 {
  pDC->LineTo(int (1000*x),int(1000*sin(x)));
 }
 for(x = 0; x <= 4*3.14; x += 0.01)
 {
  pDC->LineTo(int (1000*x), int (1000*sin(x)));
 }

 pDC->SelectObject(&pen1);
 pDC->MoveTo(int(-4000*3.14), 0);
 pDC->LineTo(int (4000*3.14), 0);
 pDC->MoveTo(0, -2000);
 pDC->LineTo(0, 2000);
 //恢復設備上下文原有畫筆
 pDC->SelectObject(pOldPen);
 pen.DeleteObject();
 pen1.DeleteObject();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章