图形学mfc

映射模式:

GetClientRect(&rcClient); // 在改变模式以前是MM_TEXT,即逻辑单位等于像素单位

dc.SetMapMode(MM_ANISOTROPIC); // 以各向异性为例

dc.SetWindowExt(500, 500); // 指定逻辑窗口为500×500的逻辑单位

dc.SetViewportExt(rcClient.Width(), rcClient.Height()); // 指定设备视口为width×height的像素单位

// 完成后,x轴比例为(width/500) pixel / 1 lg,y轴比例为(height/500) pixel / 1 lg

dc.Ellipse(0, 0, 500, 500); // 所有的绘图输入的都是逻辑单位


窗口,视区:

CRect rcClient;

GetClientRect(&rcClient);

CPoint point(rcClient.Width() / 2, rcClient.Height() / 2);

CClientDC dc(this);

dc.SetMapMode(MM_LOENGLISH);

dc.DPtoLP(&point);



CPoint point(100, 100);

CClientDC dc(this);

dc.SetMapMode(MM_LOENGLISH);

dc.LPtoDP(&point);


目前处于MM_TEXT,接下来要在MM_HIMETRIC模式下画图,并且原点要在平面的左下角

CRect rcClient;

GetClientRect(&rcClient);

dc.SetViewportOrg(0, rcClient.Height);

dc.SetMapMode(MM_HIMETRIC);

你可能感兴趣的:(图形学mfc)