【发布时间】:2016-06-18 18:22:33
【问题描述】:
我听说矩形、鼠标坐标和其他涉及绘图的东西都使用设备坐标。这是真的?有什么方法可以告诉我我是否有逻辑坐标或设备坐标?
我可以查看给我坐标的函数的文档,但有时他们没有明确说明这些是逻辑坐标还是设备坐标。例如,GetCursorPos 函数的文档说它“在屏幕坐标中检索鼠标光标的位置”。
我假设屏幕坐标与设备坐标相同?这是否意味着我必须将从函数获得的屏幕坐标转换为客户端坐标?
【问题讨论】:
我听说矩形、鼠标坐标和其他涉及绘图的东西都使用设备坐标。这是真的?有什么方法可以告诉我我是否有逻辑坐标或设备坐标?
我可以查看给我坐标的函数的文档,但有时他们没有明确说明这些是逻辑坐标还是设备坐标。例如,GetCursorPos 函数的文档说它“在屏幕坐标中检索鼠标光标的位置”。
我假设屏幕坐标与设备坐标相同?这是否意味着我必须将从函数获得的屏幕坐标转换为客户端坐标?
【问题讨论】:
您知道屏幕左上角的坐标(0,0)。但是在纸上,当我们绘制图形时,(0,0) 可能在左下角,或者在图形绘图纸的中心。
默认情况下,逻辑坐标和物理/屏幕坐标相同,(0,0) 指向左上角。但是,如果您想从左下角到屏幕中间某处画一条线,与您学过或正在练习的数学/三角学相匹配怎么办?好吧,您开始将逻辑坐标系更改为您喜欢的东西。
您可以使用SetMapMode 来更改逻辑坐标系。您可以稍后使用LPtoDP、DPtoLP、ClientToScreen、ScreenToClient 等进行映射,并将物理监视器用于窗口坐标映射。
【讨论】: