图形学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);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2016年才开始用信用卡,我算是名副其实的新手了,小白一枚!账单日、还款日才刚刚搞清楚,就乐不迭的加入了薅羊毛行列...
    亭主阅读 1,707评论 10 20
  • 给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口 k ...
    vbuer阅读 215评论 0 0
  • 三层架构分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)再加上实体类库(Model) 、、、 us...
    1f658716b568阅读 165评论 0 0
  • 我路过雾蒙蒙的清晨与黄昏 我路过凌乱的十字路口 那里有巧克力爆米花香精浓郁的气息 擦鞋匠在人群中忙碌的动作 和客人...
    Jasmim阅读 303评论 0 0