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

17.2 图形绘制3

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

17.2.4 Pen类

Pen类用于绘制线段和曲线。

Pen构造函数常用重载版本:

  1. Pen(Brush):使用指定的Brush初始化Pen类的新实例,此时宽度为1。
  2. Pen(Color):用指定颜色初始化Pen类的新实例,此时宽度为1。
  3. Pen(Brush,Single):使用指定的Brush和Width初始化Pen类的新实例。
  4. Pen(Color,Single):用指定的Color和Width属性初始化Pen类的新实例。

常用属性:

  1. Brush:获取或设置Brush,用于确定此Pen的特性。
  2. Color:画笔颜色。
  3. CustomEndCap:线段终点使用的自定义线帽。
  4. CustomStartCap:线段起点使用的自定义线帽。
  5. DashCap:用在短划线终点的线帽样式,这些短划线构成通过此Pen绘制的虚线。
  6. DashOffset:线段的起点到短划线图案起始处的距离。
  7. DashPattern:自定义的短划线和空白区域的数组。
  8. DashStyle:用于通过此Pen绘制的虚线的样式。
  9. EndCap:线段终点使用的线帽样式。
  10. LineJoin:通过此Pen绘制的两条连续线段的端点的联接样式。
  11. MiterLimit:斜接角上联接宽度的限制。
  12. PenType:获取用此Pen绘制的线段的样式。
  13. StartCap:线段起点使用的线帽样式。
  14. Width:画笔宽度,以用于绘图的Graphics对象使用的PageUnit 属性为度量单位。

【例 17.11【项目:code17-011】绘制和填充图形。

        Graphics gCanvas;

        private void Form1_Load(object sender, EventArgs e)

        {

            //使用窗体的CreateGraphics获得Graphics

            gCanvas = this.CreateGraphics();

        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)

        {

            //释放资源

            gCanvas.Dispose();

        }

        //绘制线段

        private void Button1_Click(object sender, EventArgs e)

        {

            //使用窗体背景色清除Graphics

            gCanvas.Clear(this.BackColor);

            //使用指定的颜色和宽度初始化画笔的新实例

            Pen myPen =new Pen(Color.Red, 2);

            //绘制线段

            gCanvas.DrawLine(myPen, new Point(10, 10), new Point(200, 200));

        }

        //绘制矩形

        private void Button2_Click(object sender, EventArgs e)

        {

            gCanvas.Clear(this.BackColor);

            //初始化蓝色画刷

            SolidBrush myBrush = new SolidBrush(Color.Blue);

            //使用指定的画刷和宽度初始化画笔的新实例

            Pen myPen = new Pen(myBrush, 2);

            //绘制矩形

            gCanvas.DrawRectangle(myPen, new Rectangle(10, 10, 200, 200));

        }

        //绘制椭圆

        private void Button3_Click(object sender, EventArgs e)

        {

            gCanvas.Clear(this.BackColor);

            //使用指定的颜色初始化Pen类的新实例, 此时宽度为1

            Pen myPen = new Pen(Color.Red);

            //绘制椭圆

            gCanvas.DrawEllipse(myPen, new Rectangle(50, 10, 150, 200));

        }

            //绘制扇形

        private void Button4_Click(object sender, EventArgs e)

        {

            gCanvas.Clear(this.BackColor);

            //初始化蓝色画刷

            SolidBrush myBrush = new SolidBrush(Color.Blue);

            //使用指定的画刷初始化Pen类的新实例, 此时宽度为1

            Pen myPen = new Pen(myBrush);

            //绘制扇形

            gCanvas.DrawPie(myPen, new Rectangle(50, 10, 150, 150), 90, 270);

        }

        //填充多边形

        private void Button5_Click(object sender, EventArgs e)

        {

            gCanvas.Clear(this.BackColor);

            //初始化蓝色画刷

            SolidBrush myBrush = new SolidBrush(Color.Blue);

            //多边形使用的点数组

            Point[] points = { new Point(10, 10), new Point(100, 10), new Point(250, 110), new Point(100, 210), new Point(10, 210)};

            //填充多边形

            gCanvas.FillPolygon(myBrush, points);

        }

        //填充矩形

        private void Button6_Click(object sender, EventArgs e)

        {

            gCanvas.Clear(this.BackColor);

            //初始化蓝色画刷

            SolidBrush myBrush = new SolidBrush(Color.Blue);

            //填充矩形

            gCanvas.FillRectangle(myBrush, new Rectangle(10, 10, 200, 200));

        }

        //填充椭圆

        private void Button7_Click(object sender, EventArgs e)

        {

            gCanvas.Clear(this.BackColor);

            //初始化红色画刷

            SolidBrush myBrush = new SolidBrush(Color.Red);

            //绘制椭圆

            gCanvas.FillEllipse(myBrush, new Rectangle(50, 10, 150, 200));

        }

        //填充扇形

        private void Button8_Click(object sender, EventArgs e)

        {

            gCanvas.Clear(this.BackColor);

            //初始化蓝色画刷

            SolidBrush myBrush = new SolidBrush(Color.Blue);

            //绘制扇形

            gCanvas.FillPie(myBrush, new Rectangle(50, 10, 150, 150), 90, 270);

        }

运行结果如下图所示:

图17-12 绘制和填充图形

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

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

 


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

相关文章:

  • Java小白入门教程:内置数据类型(四类八种)和引用数据类型
  • 《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(31):HTTPS和TLS/SSL
  • 【C语言】动态内存管理
  • 基于排队理论的物联网发布/订阅通信系统建模与优化
  • 【MySQL】MySQL客户端连接用 localhost和127.0.0.1的区别
  • Golang笔记——常用库context和runtime
  • Spring Web MVC基础第一篇
  • qsort应用
  • Manticore Search,新一代搜索引擎之王
  • 算法【分组背包】
  • 鸿蒙开发在onPageShow中数据加载不完整的问题分析与解决
  • 线段树(Segment Tree)和树状数组
  • FFmpeg(7.1版本)在Ubuntu18.04上的编译
  • 【二叉搜索树】
  • 2025-1-28-sklearn学习(47) (48) 万家灯火亮年至,一声烟花开新来。
  • Linux网络编程中的零拷贝:提升性能的秘密武器
  • 【PLL】参考杂散计算example
  • C++ 中的类(class)和对象(object)
  • P11467 网瘾竞赛篇之 generals 大法好
  • Java中的线程池参数(详解)
  • Python 学习进阶技术文档
  • Keepalived高可用集群入门学习
  • electron 应用开发实践
  • Android逆向(Mitmproxy)
  • 【自学笔记】JavaWeb的重点知识点-持续更新
  • Oracle11g数据库安装及建库教程