GDI+学习笔记--未完待续
生成Graphics的两种方法: l 通过事件参数Eventargs生成; l 通过控件的CreateGraphics方法生成;
|
绘制的两种方法: l 控件的paint事件; l 重写Control类的OnPaint方法; |
Graphics是否需要Dispose释放资源?(也可以使用using释放资源)
1、由事件参数EventArgs创建的Graphics不需要释放资源,如e.Graphics;
2、由控件本身创建的Graphics需要释放资源,如this.CreateGraphics;
图形变换/变形的分类:
1、线性变形:旋转、缩放和翻转等简单的变形,都是线性变形;
2、仿射变形:线性变形后,再进行平移变形,就叫做仿射变形;
3、剪切变形:根据一个剪切因数对对象进行的扭曲变形;
进行变换的方式
1、通过Graphics的Transform方法进行变换;
2、通过Matrix类进行变换,将Matrix赋值给Graphics的Transform属性即可;
3、对Path和Region进行局部变换;
变换方法测试截图:
关于Matrix类的几点说明:
- 最右边一列的元素始终不变(0,0,1)
- 左上角四个元素值,负责缩放变换、旋转变换;
- 左上角四个元素中,主对角线上的两个元素,分别负责X轴缩放和Y轴缩放;
- 下面两个元素负责平移变换,左边的负责X平移,右边的元素负责Y平移;
GDI+中有绘图表面的概念,Graphics由哪个控件(或者其事件参数,或者回调方法)创建,那么绘图就会在该控件表面进行,而不会绘制到别的控件表面上;
Rectangle和RectangleF:左边是整数int为参数的矩形,右边是浮点数float为参数的矩形
Point和PointF:左边是整数int为参数的点,右边是浮点数float为参数的点;
双缓存的设置代码:
this.SetStyle(ControlStyles.UserPaint,true); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
测试截图:
测试截图
英语生词本:
thumbnail 英 /ˈθʌmneɪl/ 美 /ˈθʌmneɪl/ n. 拇指指甲;极小的东西;短文;缩略图
adj. 极小的,极短的
palette 英 /ˈpælət/ 美 /ˈpælət/ n. 调色板;一组颜色;(计算机程序中的)选项板;
intersect 英 /ˌɪntəˈsekt/ 美 /ˌɪntərˈsekt/ v. 相交,交叉;横穿,横断;交集
...............................待续......................................
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律