Pen

QT 基本图形绘制

≡放荡痞女 提交于 2020-08-12 14:39:06
QT 基本图形绘制 1.告诉绘制引擎一些东西 QPainter::Antialiasing 在可能的情况下,反锯齿 QPainter::TextAntialiasing 在可能的情况下,文字反锯齿 QPainter::SmoothPixmapTransform 采用平滑的Pixmap变换算法 2.绘制函数 3.风格 1)画刷风格 2)画笔风格 3)画笔连接点风格 4)顶端风格 4.绘图前的准备 1 如果要在绘图设备(一般为窗口部件)上绘图,只需创建一个QPainter,再将指针传到该设备中。 例如: void MyWidget::paintEvent(QPaintEvent *event) { QPainter painter(this); } 2 常用的初始化:画笔、画刷、字体 画笔:用来画线和边缘。它包含颜色、宽度、线性、拐点风格以及连线风格。 画刷:用来填充几何图形的图案。它一般由颜色和风格组成,但同时也可以是纹理(一个不断重复的图像)或者是一个渐变。 字体:用来绘制文字。字体有很多属性,包括字体族和磅值大小。 5.具体的实例 通过建立一个画图面板来了解Qpainter是怎样绘制图形的,其中包含两个类,画图的区域PainterArea类和主窗口mainWindow类 (1)实现PainterArea类 //paintarea.h #ifndef PAINTAREA_H

玩转Microsoft Teams Room系列 5

吃可爱长大的小学妹 提交于 2020-08-12 04:44:14
运筹帷幄之中,决胜千里之外 - 西汉·司马迁《史记·高祖本纪》 使用场景 之前一篇文章介绍了通过XML文件来自定义MTR的背景图片,其实我们通过XML文件其实还可以做更多在MTR会议室的日常运维任务。 想像一下这样一个场景:当你需要为分布在不同地方的多间MTR会议室进行配置或管理的时候,例如: 变更MTR会议室的帐号? 在改密码之后需要更新MTR设备的密码? 为了安全原因需要隐藏会议主题? 会议室新购多一块会议交互大屏,变成了双屏会议室?我们需要打开MTR的双屏显示开关 自定义MTR的主题图片?参考这篇: 自定义主题让你的MTR会议与众不同 具体配置步骤 这些操作我们都可以通过XML配置文件的方式远程推送给MTR设备来实现(用共享目录的方式来推,用组策略来推,用SCCM来推,都行,只要你能够把SkypeSettings.XML这份XML文件放在MTR的指定目录即可) 什么是MTR? Microsoft Teams Room 首先需要先创建一份名字为SkypeSettings.XML的文件。 接着就可以去修改SkypeSettings.XML里面的内容,例如以下代码配置了三个设置(自动屏幕共享,隐藏会议主题,MTR帐号)。 PS. 当你要运维多个MTR会议室时,你不需要把所有参数都放在XML里面,只需要把要改的放进来即可,这样就可以有针对性地去维护这些会议室。

egret 涂色益智游戏

China☆狼群 提交于 2020-08-11 19:48:14
这个游戏效果大概是这样的: 点击调色盘,即可给音符上色。 听起来简单,做起来还是有几个难点的。 1. 拖拽画笔并且确定画笔点击的颜色; 2.切换画笔到对应的颜色; 3.确定选择的是哪个音符; 4.涂上对应的颜色; 1、创建界面 a. 使用的是EXML可视化编辑器,用这个的话,页面布局用手拖动就可以了,不必再用ts计算。官方文档 http://developer.egret.com/cn/github/egret-docs/Wing/exmlEditor/index.html 也可以查看我的另外一篇博客 https://www.cnblogs.com/caoshufang/p/12074230.html 编写界面的时候不要偷懒记得给它们加上name属性,这个name属性在后面有大作用。添加的话点击所有属性里就可以找到啦。 b. 把创建好了的界面添加到舞台上。 1 /* * 2 * 创建场景界面 3 * Create scene interface 4 */ 5 protected createGameScene(): void { 6 const coloringScene = new ColoringScene(); 7 coloringScene.skinName = `resource/eui_skins/ ColoringScene.exml`; 8

Pointer Event Api-整合鼠标事件、触摸和触控笔事件

寵の児 提交于 2020-08-08 07:41:26
Pointer Events API 是Hmtl5的事件规范之一,它主要目的是用来将鼠标(Mouse)、触摸(touch)和触控笔(pen)三种事件整合为统一的API。 Pointer Event Pointer指可以在屏幕上反馈一个指定坐标的输入设备。Pointer Event事件和Touch Event API对应的触摸事件类似,它继承扩展了Touch Event,因此拥有Touch Event的常用属性。Pointer属性如下图: 说明: pointerId:代表每一个独立的Pointer。根据id,我们可以很轻松的实现多点触控应用。 width/height:Mouse Event在屏幕上只能覆盖一个点的位置,但是一个Pointer可能覆盖一个更大的区域。 isPrimary:当有多个Pointer被检测到的时候(比如多点触摸),对每一种类型的Pointer会存在一个Primary Poiter。只有Primary Poiter会产生与之对应的Mouse Event。 Pointer Event API核心事件: Mouse events, pointer events和touch events 对照表 Pointer API 的好处 Poiter API 整合了鼠标、触摸和触控笔的输入,使得我们无需对各种类型的事件区分对待。 目前不论是web还是本地应用都被设计成跨终端

WPF 触摸屏应用需要了解的知识

一世执手 提交于 2020-08-07 07:34:45
我从 2017 进入大屏触摸这个行业,主要是做桌面软件这一块。在大屏交互平板这个行业里面的还能看的上去的应用,都是使用 WPF 做的。本文就来和大家聊聊在触摸屏应用开发的时候需要了解的软硬件知识。阅读本文你将能大概了解这个行业的一点知识 触摸屏等于触摸框加屏幕 触摸屏必须要分开看,至少在软件上需要将触摸屏分开为触摸框加屏幕两个模块,因为触摸框会直接影响软件的形态以及逻辑。而屏幕虽然也会影响,但是已经有大量驱动和底层的渲染库解决这部分问题,理论上除非写很底层的开发,否则需要关心的只是屏幕分辨率以及频率,而不需要关心屏幕的显示效果 触摸框提供了触摸输出,而屏幕接收软件的输出。因此一个触摸屏应用拆分为触摸框和屏幕就能拆分两个模块,分别是软件的输入和输出对应的模块 接下来需要告诉大家触摸框有哪些了 触摸框大概可以分为电磁屏、电容屏和红外屏,以及其他屏。我经手最多的是电磁屏、电容屏和红外屏。不同的屏幕对软件的实现逻辑有一定的影响 红外屏 红外屏幕,即红外触摸框,属于成本最低的一个触摸框。基本上市面上的红外触摸框都属于低成本方案。但红外也依然能做到高精度低延时,不过高端红外触摸屏的成本会比同等的电容屏贵一些。当然,这不是绝对的,取决于销售大佬的能力 红外屏的开发需要了解到的是红外是不区分触摸物体的,这个和电磁屏、电容屏相对。红外触摸框的原理是通过光线判断,只要有物体接触屏幕,挡住了光线

第六十七课、基础图形绘制(中)------------------狄泰软件学院

陌路散爱 提交于 2020-08-05 16:56:50
一、基础图形绘制 1、Qt图形系统中的坐标系 (1)、物理坐标系(设备坐标系) A、原点(0,0)在 左上角的位置 ,单位:像素(点) B、x坐标向右增长,y坐标向下增长 (2)、逻辑坐标系(如数学中的坐标系) A、 数学模型中的抽象坐标系, 单位由具体问题确定 B、坐标的增长方向 由具体问题决定 2、一些事实 (1)、 QPainter 使用 逻辑坐标系 绘制图形 (2)、逻辑坐标系中图形点大小和位置经 由转换后绘制于具体设备 (3)、 默认情况下 的 逻辑坐标系与物理坐标系完全一致 3、视口与窗口(站在不同的角度看待同一个矩形) (1)、 视口:物理坐标系中 一个任意指定的矩形 (2)、 窗口:逻辑坐标系下 对应到物理坐标系中 相同的矩形 4、深入理解视口与窗口 (1)、视口与窗口是 不同坐标系中的同一个矩形 (2)、视口与窗口中的 坐标点存在一一映射的关系 (3)、窗口与视口能够 通过坐标转换而互相转换 5、视口与窗口的变换方法 (1)、 定义视口(setViewport) :左上角坐标,右下角坐标,计算宽度和高度 (2)、 定义窗口(setWindow) :左上角坐标,右下角坐标,计算宽度和高度 (3)、一般做法时,先挖一个视口出来,然后在挖出来的视口上重新定义坐标系就成为窗口了 void Widget::paintEvent(QPaintEvent * ) {

Delphi 的绘图功能[1]

不问归期 提交于 2020-08-05 09:19:46
//过程: Arc BrushCopy Chord CopyRect Draw DrawFocusRect Ellipse Ellipse FillRect FloodFill FrameRect LineTo Lock MoveTo Pie Polygon Polyline PolyBezier PolyBezierTo Rectangle Rectangle Refresh RoundRect StretchDraw TextOut TextRect TextRect Unlock //函数: HandleAllocated TextExtent TextHeight TextWidth TryLock //属性: ClipRect Handle LockCount CanvasOrientation PenPos Pixels TextFlags Brush CopyMode Font Pen //事件 OnChange OnChanging 来源: oschina 链接: https://my.oschina.net/u/4340310/blog/4407170

Java 在 PDF 中绘制形状

随声附和 提交于 2020-08-05 00:48:42
在我们编辑PDF文档的过程中,有时候需要在文档中添加一些如多边形、矩形、椭圆形之类的图形,而Free Spire PDF for Java 则正好可以帮助我们在Java程序中通过代码在PDF文档中绘制形状,以及设置形状边线颜色和填充色。 Jar包导入 方法一: 下载 F ree Spire.PDF for Java 包并解压缩,然后 将lib文件夹下 的Spire.Pdf.jar包 作为依赖项导入 到Java应用程序中 方法二: 直接通过Maven仓库安装JAR包, 配置pom.xml文件 的代码如下: <repositories> <repository> <id>com.e-iceblue</id> <url>http: // repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf.free</artifactId> <version>2.6.3</version> </dependency> </dependencies> J ava 代码 import com.spire.pdf.* ; import com

为GDI函数增加透明度处理

点点圈 提交于 2020-08-04 20:05:34
用户对客户端的UI的要求越来越高,采用alpha通道对前景背景做混合是提高UI质量的重要手段。 UI开发离不开GDI,然后要用传统的GDI函数来处理alpha通道通常是一个恶梦:虽然有AlphaBlend这个API可以做alpha混合,但是前提必须是操作的DC中的位图有alpha通道的数据,问题的关键在于GDI函数在操作的地方会把原来的alpha通道清空。 使用GDI做alpha混合还要增加透明度关键要解决2个问题: 1、需要把内容画到一个临时位图上,同时保护好alpha通道。 2、在于把临时位图的数据和原位图做混合,而且不能改变镂空部分原位图的alpha通道的值。 在SOUI的render-gdi中我采用下面的类来实现GDI的半透明。 class DCBuffer { public : DCBuffer(HDC hdc,LPCRECT pRect,BYTE byAlpha,BOOL bCopyBits = TRUE) :m_hdc(hdc) ,m_byAlpha(byAlpha) ,m_pRc(pRect) ,m_bCopyBits(bCopyBits) { m_nWid = pRect->right-pRect-> left; m_nHei = pRect->bottom-pRect-> top; m_hBmp = SBitmap_GDI::CreateGDIBitmap(m

DelphiXE FireMonkey 如何画图

ぃ、小莉子 提交于 2020-05-07 14:29:59
相关资料: https://stackoverflow.com/questions/10291330/firemonkey-penmode-equivalent-drawline https://blog.csdn.net/shuaihj/article/details/8444676 http://www.delphitop.com/html/FMX/2646.html http://docwiki.embarcadero.com/CodeExamples/Rio/en/FMXTCanvasDrawFunctions_(Delphi) CSDN代码下载: https://download.csdn.net/download/zhujianqiangqq/12394005 代码实例: 1 { 2 相关资料: 3 http://www.delphitop.com/html/FMX/2646.html 4 http://docwiki.embarcadero.com/CodeExamples/Rio/en/FMXTCanvasDrawFunctions_(Delphi) 5 6 FMX 的 Canvas 在不同的系统上会分别使用: 7 WinVista、Win7: D2D (FMX.Canvas.D2D.pas) 8 WinXP: GDI+ (FMX.Canvas.GDIP.pas)