一个简单的问题,啥是设备坐标,逻辑坐标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的问题,啥是设备坐标,逻辑坐标相关的知识,希望对你有一定的参考价值。

K线上,横坐标显示时间,纵坐标显示股价波幅(K线长短).具体图形1日线:横轴显示单日,纵轴为当日K线(当日开收价之间为实体,最低最高价为上下影线).2周线:横轴为该周交易天数,合并为一周(有几天交易算几天),一个单位显示为一周所有交易时间;纵轴为当周K线(以本周第一交易日开盘价为开盘价,以最后一个交易日收盘价为收盘价,本周最高最低价为上下影),一周的日线合并为一根周线.3月线,如同周线一样,横轴对应的单位显示为一月的所有交易日,纵轴显示的是一个月所有日线的合并.有一点应该说明,随着周期不同,K线的长度也不断加长,为了便于显示,K线是按指数形式(除以10的n次幂)缩短的. 参考技术A 逻辑坐标是独立于设备的,它与设备点的大小无关。使用逻辑单位,是实现"所见即所得"的基础。当程序员在调用一个画线的GDI函数LineTo,画出25.4mm(1英寸) 长的线时,他并不需要考虑输出的是何种设备。若设备是VGA显示器,Windows自动将其转化为96个像素点;若设备是一个300dpi的激光打印机,Windows自动将其转化为300个像素点。
Windows将GDI函数中指定的逻辑坐标映射为设备坐标,在所有的设备坐标系统中,单位以像素点为准,水平值从左到右增大,垂直值从上到下增大。
逻辑坐标与设备坐标的转换方式
映射方式定义了Windows如何将GDI函数中指定的逻辑坐标映射为设备坐标。要继续讨论映射方式我们要介绍Windows有关映射模式的一些术语:我们将逻辑坐标所在的坐标系称为"窗口",将设备坐标所在的坐标系称为"视口"。
"窗口"依赖于逻辑坐标,可以是像素点、毫米或程序员想要的其他尺度。
"视口"依赖于设备坐标(像素点)。通常,视口和客户区域等同。但是,如果程序员用GetWindowDC或CreateDC获取了一个设备环境,则视口也可以指全窗口坐标或屏幕坐标。点(0,0)是客户区域的左上角。x的值向右增加,y的值向上增加。
对于所有映射模式,Windows都用下面两个公式将窗口坐标转换成视口坐标: xViewport=(xWindow-xWinOrg)*(xViewExt/xWinExt)+xViewOrg yViewport=(yWindow-yWinOrg)*(yViewExt/yWinExt)+yViewOrg
其中,(xWindow,yWindows)是待转换的逻辑点,(xViewport,yViewport)是转换后的设备点。如果设备坐标是客户区域坐标或全窗口坐标,则Windows在画一个对象前,还必须将这些坐标转换成屏幕坐标。

大哥们求助:MFC中OnLButtonDown响应函数中,鼠标左键单击的点(point)的坐标是物理坐标还是逻辑坐标啊?

大哥们,MFC中,有个简单的问题一直困扰着我,希望大虾们帮帮我,Q:在OnLButtonDown响应函数中,鼠标左键单击的点(point)的坐标是物理坐标还是逻辑坐标啊?我用AfxMessageBox显示出来怎么point.x和point.y都是0啊!!!!!

一般是以窗口左上角为原点的坐标,不是屏幕坐标。如果用AfxMessageBox显示出来都是0,说明你使用AfxMessageBox的方式不对。 参考技术A 请先查看下你用MessageBox获得x,y的坐标是不是鼠标左键的point,最好能贴出相关代码,以方便分析

以上是关于一个简单的问题,啥是设备坐标,逻辑坐标的主要内容,如果未能解决你的问题,请参考以下文章

如何绘制围绕中心坐标相对于设备旋转的真实世界坐标?

mfc怎样把逻辑坐标换算成物理坐标

在GPS经纬度中,啥是绝对84坐标 , 相对84坐标

啥是神经网络

Ellipse

为啥图形管线需要映射到剪辑坐标和标准化设备坐标?