C#----Graphics中部分方法的使用和理解
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));//画出样条
说明:画基数样条,基数样条由多个点决定其形状,由参数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) });//画基数样条
说明:画矩形的内切椭圆。因为是内切的,所以矩形的形状就决定了椭圆的形状。
参数: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);//呈现矩形的内切椭圆
说明:把一个图标画在一个矩形中,图标会随着矩形的变化而压缩或者拉伸
参数:Icon,表示图标的对象,Rectangle表示矩形
呈现:
说明:在点处画一个Image图片,图片的大小是原来的物理大小
参数:Image,准备的图片,Point表示点
呈现:
C#----Graphics中部分方法的使用和理解的更多相关文章
- Java - 记录String中intern()方法的学习与理解
intern()方法:把堆中的引用丢入常量池中,然后返回这个引用.当常量池中已经存在这个引用,就直接返回这个引用.(jdk1.8) 由于jdk1.7中将字符串常量池改为存放在堆中,因此intern() ...
- Delphi 中调用JS文件中的方法
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- 戏说 .NET GDI+系列学习教程(二、Graphics类的方法)
一.DrawBezier 画立体的贝尔塞曲线 private void frmGraphics_Paint(object sender, PaintEventArgs e) { Graphics g ...
- category中重写方法?
问:可以在category中重写方法吗? 答:代码上可以实现 在category中重写方法,但在实际开发中,不建议这样做.如果确实需要重写原有方法也建议使用子类进行重写. category是为了更方便 ...
- JQuery中$.ajax()方法参数详解 及 async属性说明
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...
- jQuery中eq()方法用法实例
本文实例讲述了jQuery中eq()方法用法.分享给大家供大家参考.具体分析如下: 此方法能够获取匹配元素集上的相应位置索引的元素. 匹配元素集上元素的位置索引是从0开始的. 语法结构: 复制代码 代 ...
- Java中,方法的重写、重载的区别,以及多态的实例
首先我们要明白什么是重写和重载 重写(override):子类方法覆盖了父类的方法. (类与类之间继承的关系) 例:父类代码 public class Deng { public void Qi ...
- 深度理解Jquery 中 offset() 方法
参考原文:深度理解Jquery 中 offset() 方法
- 第6章 Java类中的方法
1.如何定义java的方法 什么是方法:方法使用来解决一类问题的代码集合,是一个功能模块在类中定义个方法的方法是: 访问修饰符 返回值类型 方法名(参数列表){ 方法体 } 1.访问修饰符,是限制该方 ...
随机推荐
- [Mindjet MindManager]思维导图的快捷键操作
来源于:http://www.cnblogs.com/whylaughing/p/5530935.html Mindjet MindManager(思维导图) 快捷键如下: Insert or CTR ...
- MyBatis dao层 方法传参
MyBatis dao层 方法传参有三种方法. 1. 以下标的方法获取参数. <update id="insertSuccessKilled"> INSER ...
- Ubuntu里的若干问题解决方案
1. Ubuntu里出现两个屏幕,并且其中一个是“未知显示器”,无法去除时,可以尝试使用该命令:sudo apt-get install bumblebee-nvidia 2.虚拟机上Ubuntu开机 ...
- elasticsearch和hadoop集成,gateway.type hdfs设置
配置elasticsearch的存储路径为hdfs需要两步,安装插件 elasticsearch-hadoop,在联网的情况下在命令窗口运行:plugin -install elasticsearch ...
- [转]java反射机制
原文地址:http://www.cnblogs.com/jqyp/archive/2012/03/29/2423112.html 一.什么是反射机制 简单的来说,反射机制指的是程序在运 ...
- zoj3261 并查集离线处理
Connections in Galaxy War Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%lld & ...
- 【POJ 1523】SPF(割点)
儿子数大于1的树根或者 Low[v] >= DFN[u]的非树根节点v 就是割点. #include <cstdio> #include <cstring> const ...
- Linq集合
摘要:微软在.NET 3.5中推出了LINQ,现在各种LINQ Provider满天飞,TerryLee在老外站点上收集了一份LINQ Provider列表 微软在.NET 3.5中推出了LINQ,现 ...
- Bzoj2763 [JLOI2011]飞行路线
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2651 Solved: 1004 Description Alice和Bob现在要乘飞机旅行,他们选 ...
- Akka: actor应用的一些小结
1.消息: 1) case class是scala中一个不可变对象(当然你可以让他成为可变的),通过不可变对象来进行消息传递可以更加明确内容,也能保证线程安全 2) 在Java中如果你将class对象 ...