逻辑坐标和设备坐标概念粗解!

Qt坐标系转换(绘制逻辑坐标系) 本资源为Qt绘图基础,世界坐标系转换为逻辑坐标系。世界坐标系原点在视图左上角,本例子通过世界坐标转换,将坐标原点定位在视图中央,Y轴向上,X轴向右,并绘制坐标轴,基于逻辑坐标系下的绘图,可将转换关系函数取消生效,对比世界坐标系下的绘图。 重写PainterEvent函数: void QtPixPainter::paintEvent(QPaintEvent* event) { QPainter painter(this); // 反走样 painter.setRenderHint(QPainter::Antialiasing, true); //物理坐标系与逻辑坐标系的转换,如果不转换,下面的绘图都是在世界坐标系下 setWorldTransform(painter); // 其他一些绘制矩形,多边形的例子,经过上面转换,都是在逻辑坐标系下 drawRectScale(painter); //draw_shearRect(painter); //利用rotate()函数进行比例变换,实现缩放效果 //draw_rotate_act(painter); //draw_by_save_restore(painter); //transform_draw_SinX(painter); transform_draw(painter); local_drawConvexPolygon(painter); } // 将世界坐标(原点左上角)转换为逻辑坐标(原点在屏幕中间) QPointF QtPixPainter::mapToScene(const QPointF& point) { QTransform transMatrix = _transform.inverted(); //翻转矩阵? return transMatrix.map(point); //将点piont映射到transMatrix定义的坐标系中来 } // 将鼠标的逻辑位置返回并以标签形式展示 void QtPixPainter::mouseMoveEvent(QMouseEvent* event) { QString msg; QPointF mouse_po = mapToScene(event->pos()); //总是返回屏幕物理坐标系 double x = mouse_po.x(); // 总是返回屏幕物理坐标系 double y = mouse_po.y(); QString str = "(" + QString::number(x) + "," + QString::number(y) + ")"; //qDebug()<<"world x = "<pos().x()<<",world y = "<pos().y(); m_mouse_lable->setText(str); } 立即下载

 

逻辑坐标和设备坐标

在正常情况下如果窗口不能卷动,或者可以卷动但是未卷动,则这两种坐标是相同的。

窗口:我们程序所创建的那个可视的界面。

视口: 客户区也就是Client area的左上角(也称为视口原点)开始肉眼所能见的显示区域。

在窗口未卷动之前,窗口原点和视口原点是重叠的。但是当窗口向下卷动。此时窗口原点和视口原点就不同。视口原点还是原来的地方,但是窗口原点则被卷到了上方。(希望我这样讲能比较直观)。

相对于窗口原点的是逻辑坐标。而相对于视口原点的则为设备坐标。(注意我们之前讨论的设备坐标是以客户区域为参照的,另外还有以窗口为参照(包括非客户区域和以屏幕为参照,也就是通常的屏幕坐标))。

如果屏幕卷动了此时要得到正确的逻辑坐标就必须使用

OnPrepareDC();重设窗口原点和视口原点。

DPtoLP(); 转换设备坐标为逻辑坐标。

 

qt坐标系详细讲解 qt 2d绘图的资料,里面包含了坐标机制,很详细 立即下载

相关推荐

【v4l2】在Android SDK中交叉编译v4l2-ctl

为调试Android设备中camera的相关功能,需要引入v4l2-ctl工具。由于厂商提供的Android SDK源码中未集成v4l2-utils(包含v4l2-ctl以及其它组件的工具包),故需要下载v4l2-utils源码,并在Android SDK中交叉编译生成v4l2-ctl可执行文件。本文讲述其过程步骤。

rentong123的博客 1323

设备坐标和逻辑坐标

个人理解 : 设备坐标指物理设备的坐标系统,原点(0,0)一般都在左上角,因为设备坐标的间隔尺寸有可能是像素,mm 或者其它 ,所以程序员并不需要清楚设备的具体坐标表示,于是就发明了逻辑坐标。 逻辑坐标的产生完全是为了不必去考虑设备坐标的位置,能更统一的进行坐标标示,比如要定点 (100,100) 则直接用逻辑坐标的方式定到(100,100),这里就产生了这个(100,100)的坐标是怎么对应于

flagoop的专栏 689

十、强势股的起爆点:第三类买点的实战精解

本文深入解析强势股交易中的第三类买点(三买)实战技巧,涵盖两种经典模式:突破首个中枢后的回踩和底部反转后的直接脱离下跌中枢。通过详细案例和数据分析,揭示三买在捕捉主升浪起爆点时的黄金信号作用,帮助投资者优化风险收益比,提升短线交易成功率。

weixin_30260191的博客 311

Qt之坐标系统

简述 坐标系统由 QPainter 类控制,再加上 QPaintDevice 和 QPaintEngine,就形成了 Qt 的绘图体系。 QPainter:用于执行绘图操作 QPaintDevice:二维空间的抽象层,可以使用 QPainter 在它上面进行绘制。 QPaintEngine:提供了统一的接口,用于 QPainter...

weixin_34059951的博客 576

定制PYNQ的overlay

一、用HLS生成一个定制IP(加速器)(1)首先打开vivado hls,本人的版本是2017.2,点击创建一个新工程。(2)设置工程名和路径,顶层函数设置为add,创建一个新的C++程序,名字叫做adder.cpp,不用在testbench中添加文件。选择板子的时候搜索xc7z020clg400-1,这是PYNQ的板子号,选择完成。             (3)在左侧的菜单栏里选择Sourc...

bramblewalls的博客 1万+

Proteus+汇编+8086电子时钟实战:从框架搭建到中断驱动的核心实现

本文详细介绍了使用Proteus仿真软件和8086汇编语言实现电子时钟的完整过程。从程序框架搭建、内存分段模型理解,到核心的8259中断控制器配置与编程,再到中断服务程序编写和数码管动态扫描显示驱动,系统阐述了底层软硬件协同开发的核心原理与实战步骤。该项目是深入理解计算机中断机制和汇编语言编程的绝佳实践。

weixin_29189381的博客 413

逻辑坐标和设备坐标的区别

转自:http://blog.youkuaiyun.com/lishuhuakai/article/details/18362349

Qt&MFC 1055

NVIDIA Jetson AGX Xavier设置风扇转速、工作模式及性能监控

Xavier的风扇在开机之后是默认关闭的,每次重启都需要手动打开风扇,后续可能考虑修改bashrc文件进行自动开启 这个是显示当前风扇的转速,默认应该是0,表示关闭,最大是250 cat /sys/devices/pwm-fan/target_pwm 可以通过修改该文件的值来修改风扇转速 vim /sys/devices/pwm-fan/target_pwm 我一般使用的是100这个值 作者:ryan_ren 链接:https://www.jianshu.com/p/d3c2041f7f7d 来源:简书 著

weixin_43877080的博客 1万+

[MFC]逻辑坐标系和设备坐标系

建立一个合适的坐标系可以为我们的绘图带来很大的方便。下面介绍一下如何在VC中建立我们想要的坐标系。 (1) 设备坐标(Device Coordinate)又称为物理坐标(Physical Coordinate)。设备坐标用对象距离客户区窗口左上角的水平距离和垂直距离来指定对象的位置,是以像素为单位来表示的。 逻辑坐标(LogicalCoordinate)是系统用作记录的坐标。

Love_Basketballer的博客 2327

从轻量化到高精度:3DXML 转 STP 的工程数据升级技术指南

本文详细解析了3DXML转STP格式的工程数据升级技术,对比了两种格式在轻量化和高精度方面的特性差异,并提供了CATIA、FreeCAD及Python编程等多种专业级转换方案。通过实际案例展示了如何确保转换过程中的数据精度,适用于CAD设计、精密制造等场景,帮助工程师实现工程数据的高效升级。

weixin_29201859的博客 215

YOLOv8车辆碰撞识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置+目标检测)

随着我国汽车保有量的持续攀升,道路交通事故数量居高不下,车辆碰撞损伤的快速、精准评估已成为交通安全管理、保险理赔定损以及汽车后市场服务中的关键环节。传统的人工目视查验方法高度依赖评估人员的专业经验,不仅主观性强、效率低下,而且在复杂光照、多角度遮挡等真实场景下难以保证评估的一致性和可复现性。计算机视觉与深度学习技术的迅猛发展,为目标检测任务提供了强有力的技术支撑,使得基于视觉的车辆损伤自动化识别成为可能。

斌擎科技 129

MFC-设备坐标和逻辑坐标

MFC-设备坐标和逻辑坐标

博客文章说明 5447

[QMT量化交易小白入门]-八十九、深度学习训练多维特征进行金融价格行情预测

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 218

VC的逻辑坐标和设备坐标

 以前看了一点windows程序设计还有VC一点东西,对windows坐标系好像就是有一点迷惑.现在开始系统的学习MFC,又涉及到了这个问题,确实有些不解,于是搜到一些资料:  所谓设备坐标与逻辑坐标只是相对的概念。     比如点pt(1000,1000),如果你认为他是     设备坐标,那么经过下变换,他就变成逻辑     坐标:      dc.DPtoLP(&pt);     如果你

nizainade的专栏 2294

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

关于设备坐标和逻辑坐标在vc中的相关

  一 坐标系统概述    众所周知,VC中的坐标系统分为逻辑坐标和设备坐标,逻辑坐标就是内存中虚拟的坐标,我们可以理解为看不见的,而设备坐标就是跟具体的设备相联系的坐标系统,如:显示器和打印机等。不同的映射模式决定了设备坐标和逻辑坐标之间的转换关系,也就是两种坐标系统在相互转换时,逻辑单位和设备单位之间的某种比例关系。这里需要说明的是:Windows中,只有对需要设备环境句柄作参数的GDI函数,

爱杀之爪的矩阵 2148

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

逻辑坐标与设备坐标——全窗口坐标、屏幕坐标、客户区坐标的总结

Windows应用程序绘制图形时使用的是一种逻辑单位,每个逻辑单位的大小由映射模式决定,这个逻辑单位既可以与设备单位(屏幕或打印机上的一个像素点)相同,也可以是一种物理单位(如毫米),还可以是用户自定义的一种单位。在Windows应用程序中,只要与输出有关系,都要使用映射模式。   首先谈谈映射模式基本知识,当Windows应用程序在其客户区绘制图形时,必须给出在客户区的位置,其位置用x和y

Sin_Geek成长の迹 6711

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

理解映射方式、设备坐标系、逻辑坐标系、设置逻辑坐标原点与设备坐标原点

 在VC下进行GDI编程,理解映射方式、设备坐标系、逻辑坐标系、设置逻辑坐标原点和设备坐标原点,真的把我折磨的够厉害的,花了很多时间,终于弄明白一些了,在此记录下,以便以后温习。   一、关于映射方式 参考的网络文章地址:http://blog.youkuaiyun.com/xuyongbeijing2008/article/details/8063801  映射方式定义了将逻辑单位转换为设备单位的...

爬行的菜鸟的博客 803
上一篇: CSliderCtrl的自绘制和鼠标定位滑块
下一篇: 几道C的基础题解答不一定对有错忘纠正!
WowBanyan
博客等级 码龄18年 5粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值