zoukankan      html  css  js  c++  java
  • GDI的坐标映射搞了半天才明白

    只怪我自己太笨了,这么简单的东西,搞了半天才弄明白。

    首先通过 SetMapMode函数修改坐标映射模式,我这里使用了MM_ANISOTROPIC模式。

    SetMapMode(hDC,MM_ANISOTROPIC);

    然后调用SetWindowExtEx函数设置逻辑坐标。我们把基数调简单一点为1,1

    SetWindowExtEx(hDC,1,1,NULL);

    再调用SetViewportExtEx函数设置设备坐标。

    SetViewportExtEx(hDC,2,2,NULL);

    然后调用MoveTo和LineTo画线。

    MoveTo(0,0);LineTo(50,50)。

    由于我们使用坐标映射修改了坐标比例。那么参数里的实际坐标长度应该是Move(0 * (2/1),0 * (2/1)) LineTo(50 * (2/1), 50 * (2/1));

    这样大家能看明白吗?

    设置DC坐标映射,你作画时的实际坐标,就会根据坐标映射比例(Viewport ÷ Window) 进行缩放。大家可以去实验一下。

     

    这个还有朋友不理解的给我留言好了。。。

  • 相关阅读:
    Spring-boot 项目中使用 jackson 遇到的一个问题
    Spring Cloud 简介
    VSCode配置JAVA开发环境
    Smtp错误码
    Git遇到的问题
    对于static静态
    面向对象
    类与对象的概念
    java执行过程
    nacos安装部署
  • 原文地址:https://www.cnblogs.com/linweifu/p/1813088.html
Copyright © 2011-2022 走看看