1、DrawArc(Pen, Rectangle, Single, Single)

说明:绘制一段弧线,弧线是椭圆的一部分,椭圆是矩形Rectangle的内切椭圆。

参数:Pen是画弧线使用的画笔;Rectangle是椭圆所在的矩形;第一个Single决定了弧线的起点,矩形有一个中心,中心点向右为X轴正方向,中心向下为Y轴的正方向,从中心点画椭圆,以X轴正方向开始,第一个Single为顺时针转动的角度度数,转动结束后停留的点就是弧线的起始点,第二个Single决定了结束点。呈现图形如下:

代码:

            Graphics g = splitContainer3.Panel1.CreateGraphics();
Pen p = new Pen(Color.Blue);//画笔
p.DashStyle = DashStyle.Solid;
p.Width = 1;
Rectangle r=new Rectangle(new Point(40, 40), new Size(30, 60));//矩形
g.DrawCurve(new Pen(Color.Red,5), new Point[] {new Point(54,70),new Point(55,71)});//显示中心点
g.DrawRectangle(new Pen(Color.Black),r);//显示矩形边界
g.DrawArc(p, r, 0, 80);//显示弧线

2、DrawBezier(Pen, Point, Point, Point, Point)

说明:绘制贝塞尔样条,贝塞尔样条是由4个点来决定的,用Pen参数来呈现。

呈现:

代码:

            Graphics g = splitContainer3.Panel1.CreateGraphics();
Pen p = new Pen(Color.Blue);//画笔
p.DashStyle = DashStyle.Solid;
p.Width = 1; g.DrawBezier(p, new Point(40, 40), new Point(60, 60), new Point(790, 120), new Point(90, 90));//画出样条

3、DrawCurve(Pen,Point[])

说明:画基数样条,基数样条由多个点决定其形状,由参数Pen来呈现。

参数:Pen,画线条的画笔,Point[],点的集合。

呈现:

代码:

            Graphics g = splitContainer2.Panel1.CreateGraphics();
Pen p = new Pen(Color.Blue);
p.DashStyle = DashStyle.Solid;
p.Width = 2;
g.DrawCurve(p, new Point[] { new Point(50, 50), new Point(50, 80),new Point(180,80) });//画基数样条

4、DrawEllipse(Pen, Rectangle)

说明:画矩形的内切椭圆。因为是内切的,所以矩形的形状就决定了椭圆的形状。

参数:Pen,使用的画笔;Rectangle,决定椭圆的矩形。

呈现:

代码:

            Graphics g = splitContainer3.Panel1.CreateGraphics();
Pen p = new Pen(Color.Blue);//画笔
p.DashStyle = DashStyle.Solid;
p.Width = 1;
Rectangle r = new Rectangle(new Point(40, 40), new Size(30, 60));//矩形
g.DrawRectangle(p,r);//呈现矩形
g.DrawEllipse(p, r);//呈现矩形的内切椭圆

5、DrawIcon(Icon, Rectangle)

说明:把一个图标画在一个矩形中,图标会随着矩形的变化而压缩或者拉伸

参数:Icon,表示图标的对象,Rectangle表示矩形

呈现:

6、DrawImage(Image, Point)

说明:在点处画一个Image图片,图片的大小是原来的物理大小

参数:Image,准备的图片,Point表示点

呈现:

C#----Graphics中部分方法的使用和理解的更多相关文章

  1. Java - 记录String中intern()方法的学习与理解

    intern()方法:把堆中的引用丢入常量池中,然后返回这个引用.当常量池中已经存在这个引用,就直接返回这个引用.(jdk1.8) 由于jdk1.7中将字符串常量池改为存放在堆中,因此intern() ...

  2. Delphi 中调用JS文件中的方法

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  3. 戏说 .NET GDI+系列学习教程(二、Graphics类的方法)

    一.DrawBezier 画立体的贝尔塞曲线 private void frmGraphics_Paint(object sender, PaintEventArgs e) { Graphics g ...

  4. category中重写方法?

    问:可以在category中重写方法吗? 答:代码上可以实现 在category中重写方法,但在实际开发中,不建议这样做.如果确实需要重写原有方法也建议使用子类进行重写. category是为了更方便 ...

  5. JQuery中$.ajax()方法参数详解 及 async属性说明

    url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...

  6. jQuery中eq()方法用法实例

    本文实例讲述了jQuery中eq()方法用法.分享给大家供大家参考.具体分析如下: 此方法能够获取匹配元素集上的相应位置索引的元素. 匹配元素集上元素的位置索引是从0开始的. 语法结构: 复制代码 代 ...

  7. Java中,方法的重写、重载的区别,以及多态的实例

    首先我们要明白什么是重写和重载 重写(override):子类方法覆盖了父类的方法.    (类与类之间继承的关系) 例:父类代码 public class Deng { public void Qi ...

  8. 深度理解Jquery 中 offset() 方法

    参考原文:深度理解Jquery 中 offset() 方法

  9. 第6章 Java类中的方法

    1.如何定义java的方法 什么是方法:方法使用来解决一类问题的代码集合,是一个功能模块在类中定义个方法的方法是: 访问修饰符 返回值类型 方法名(参数列表){ 方法体 } 1.访问修饰符,是限制该方 ...

随机推荐

  1. Qt做动画旋转旋转图片

    今天看到百度首页的音乐播放有个图片可以旋转,感觉很酷就用qt做了一个类似的,关键时刻还是要发挥数学功底,静下心来,写一写,画一画,编程对数学分析能力要求还是不小的,以后要经常锻炼数学分析能力啊! Wi ...

  2. .NET中的垃圾回收

    目录 l         导言 l         关于垃圾回收 l         垃圾回收算法 m        应用程序根(Application Roots) l         实现 m   ...

  3. 【CodeVS 3289】【NOIP 2013】花匠

    http://codevs.cn/problem/3289/ dp转移,树状数组维护前缀max和后缀max进行优化,$O(nlogn)$. #include<cstdio> #includ ...

  4. poj1966 求顶点连通度

    Cable TV Network Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4563   Accepted: 2118 ...

  5. C# 定时器运用

    在晚上12点执行任务 using System;using System.Collections.Generic;using System.ComponentModel;using System.Da ...

  6. jQuery 仿百度输入标签插件

    之前在做cms系统的时候,由于缺少tag的设计,准备自己搞一个,百般搜索,居然给我发现了一个无论在视觉和操作上都是非常爽的 原作者的地址:http://www.soso.io/article/1710 ...

  7. poj2284 欧拉公式

    题意:给出一图形,求该图形把平面分成了几部分 欧拉公式: http://blog.csdn.net/wangxiaojun911/article/details/4586550 对于二维平面上的情况. ...

  8. linux最常用的20条命令

    玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了.当然你也可以在使用时去找一下 ...

  9. (原)Java初始化过程

    先看一个demo,然后进行归纳. class X{ static M m=new M(); Y y=new Y(); public X(){ System.out.print("X" ...

  10. 事务块TransactionScope使用

    TransactionScope 可以让代码块成为事务性代码块. 当发生异常时,会自动回滚.后期手动提交事务. 简单的例子: using (TransactionScope ts = new Tran ...