当前位置: 首页 > article >正文

17.2 图形绘制1

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

17.2.1 C#中的坐标系

在教科书上画图的时候,一般采用的是平面直角坐标系,由在同一个平面上互相垂直且有公共原点的两条数轴构成,其中方向从左往右水平的数轴为X轴,方向从下往上垂直的数轴为Y轴。

而C#中的坐标系与平面直角坐标系不同,坐标原点(0,0)在平面左上角,X轴方向在平面内水平向右,Y轴方向在平面内垂直向下,Z轴方向垂直平面向外:

图17-5 C#中的坐标轴

17.2.2 Graphics类

Graphics类是GDI+的核心,它提供了很多绘制图形到显示设备的方法。Graphics就像是画布,要作画,就必须先建立Graphics对象,才能这上面实现图像的操作。

Graphics常用属性:

  1. CompositingQuality:绘制到此Graphics的合成图像的呈现质量。
  2. DpiX:获取水平分辨率。
  3. DpiY:获取垂直分辨率。
  4. SmoothingMode:平滑处理(抗锯齿)模式。

Graphics常用方法:

  1. Clear:清除整个绘图面并以指定背景色填充。
  2. CopyFromScreen:实现屏幕拷贝到Graphics。
  3. DrawIcon:在指定位置绘制由指定的Icon图像。
  4. DrawImage:在指定位置并且按指定形状和大小绘制指定的Image。
  5. DrawArc:绘制弧线。
  6. DrawBezier:绘制贝塞尔样条。
  7. DrawCurve:绘制基数样条。
  8. DrawLine:绘制线段。
  9. DrawString:绘制字符串。
  10. DrawClosedCurve:绘制闭合基数样条。
  11. DrawEllipse:绘制椭圆。
  12. DrawPath:绘制路径。
  13. DrawPie:绘制扇形。
  14. DrawRectangle:绘制矩形。
  15. DrawPolygon:绘制多边形。
  16. FillClosedCurve:填充闭合基数样条曲线的内部。
  17. FillEllipse:填充椭圆。
  18. FillPath:填充路径的内部。
  19. FillPie:填充扇形。
  20. FillRectangle:填充矩形。
  21. FillPolygon:填充多边形。
  22. FillRegion:填充区域的内部。
  23. MeasureString:测量用指定的Font绘制的指定字符串,返回SizeF结构,该结构表示绘制的字符串图形的大小。
  24. ScaleTransform:将指定的缩放操作应用于此Graphics的变换矩阵,方法是将该对象的变换矩阵左乘该缩放矩阵。
  25. RotateTransform:将指定旋转应用于此Graphics的变换矩阵。
  26. TranslateTransform:通过使此Graphics的变换矩阵左乘指定的平移来更改坐标系统的原点。
  27. Save:保存此Graphics的当前状态,返回一个GraphicsState类,之后可以用Restore方法还原。
  28. Restore:将此Graphics的状态还原到GraphicsState表示的状态。

注意:如果是绘制线使用都是Draw开头的方法,如果是填充图形都是Fill开头的方法。

Graphics类没有提供构造函数,可以使用以下方法获得它的实例。

1、能够在表面作图的控件,都支持CreateGraphics方法,例如:

Graphics g= this.CreateGraphics();

Graphics g= pictureBox1.CreateGraphics();

2、使用FromImage方法从指定的Image创建新的 Graphics,例如:

Graphics g = Graphics.FromImage(new Bitmap(100, 100));

3、使用FromHwnd方法从指定句柄创建新的Graphics,例如:

Graphics g = Graphics.FromHwnd(this.Handle);

【例 17.5【项目:code17-005】窗体上绘制图片。

        private void button1_Click(object sender, EventArgs e)

        {

            //创建一个Bitmap实例

            Bitmap bmp =new Bitmap("c:\\lessons\\zg.jpg");

            //创建一个Graphics

            Graphics g= this.CreateGraphics();

            //在指定大小的矩形内绘制图片

            g.DrawImage(bmp, new Rectangle(0, 0, bmp.Width / 3, bmp.Height / 3));

            //释放占用的资源

            g.Dispose();

        }

运行结果如下图所示:

图17-6 窗体上绘制图片

注意:使用完Graphics后应该使用Dispose方法释放资源。

 

学习更多vb.net知识,请参看vb.net 教程 目录

学习更多C#知识,请参看C#教程 目录


http://www.kler.cn/a/527037.html

相关文章:

  • jinfo命令详解
  • PCA9685 一款由 NXP Semiconductors 生产的 16 通道、12 位 PWM(脉宽调制)控制器芯片
  • 表格结构标签
  • [HOT 100] 0003. 无重复字符的最长子串
  • 详解u3d之AssetBundle
  • 【Rust自学】15.1. 使用Box<T>智能指针来指向堆内存上的数据
  • python算法和数据结构刷题[1]:数组、矩阵、字符串
  • 学习数据结构(5)单向链表的实现
  • LeetCode 349: 两个数组的交集
  • 三天急速通关JavaWeb基础知识:Day 3 依赖管理项目构建工具Maven
  • Hypium+python鸿蒙原生自动化安装配置
  • 【游戏设计原理】96 - 成就感
  • 如何利用天赋实现最大化的价值输出
  • 深度科普:DeepSeek——探索深度学习的前沿
  • 基于Spring Security 6的OAuth2 系列之七 - 授权服务器--自定义数据库客户端信息
  • Git进阶之旅:Git 多人合作
  • 13JavaWeb——SpringBootWeb之事务AOP
  • Redis地理散列GeoHash
  • 开源智慧园区管理系统如何重塑企业管理模式与运营效率
  • 适合传输政府保密文档的可替代FTP传输系统
  • 数据挖掘常用算法
  • Redis篇 Redis如何清理过期的key以及对应的解决方法
  • Vue - 标签中 ref 属性的使用
  • C# Winform制作一个登录系统
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.1 NumPy高级索引:布尔型与花式索引的底层原理
  • CAP 定理的 P 是什么