世界坐标:相对于winform窗体来说的,

页面坐标:相对于控件的

设置坐标:相对于显示器

获得Graphics对象一般有两种方式:

1.控件.CreateGraphics();//通过该方式创建后要调用g.Dispose()方法释放资源。

2.在重写OnPaint()方法中通过参数PaintEventArgs e.Graphics;来获得,一般使用为Paint事件中。//通过这种方式一般不需要手动调用Dispose();

什么样类型的对象需要使用完成后Dispose()?
答:Pen,Brush,Font,Image,Ico,FileStream(文件操作),网络操作等。 (在这些类中封装了一些操作系统的资源)//Pens.XXX或Brushes.XXX等不需要,手动创建的才需要。强行释放资源会出错.

新建一个画笔

Graphics 变量 = this.CreateGraphics();//this也可以是控件名称,代表在那个控件上画

新建一个画笔类型

Pen 变量 = new Pen(Color.Black, 1); //Black颜色  1代表画笔的宽度

DashStyle  属性 设置画笔的类型  在这个命名空间  using System.Drawing.Drawing2D;

pen.DashStyle = DashStyle.Dot;//由点构成的线

pen.DashStyle = DashStyle.Dash;//由线段构成的线

新建一个点

Point 变量 = new Point(X,Y);  // X代表x轴 Y代表y轴

新建一种字体变量

Font font = new Font("宋体", 9);

画笔变量.DrawString("湖南工程职业技术学院", this.Font, Brushes.Red, 10, 50);//

DrawXXX() 画各种图形  Pen

FillXXX()  画实心的 Brush

Ellipse  圆

Rectangle  矩形

g.DrawEllipse(Pens.Black, 10, 100, 80, 80);//空心圆

g.DrawRectangle(Pens.Brown,10,200,100,100);//空心 矩形

g.DrawLine(Pens.BlueViolet,20,30,50,80);//画一条线  笔的类型,起始点坐标,终止点坐标

//三个常用的封装

Point p = new Point(10, 280);//对坐标点的封装

Size s = new Size(100,5);//对形状大小的封装   封装一个宽度为100 高度为5

Rectangle re = new Rectangle(p, s);//封装一个矩形区域 p坐标点  s大小

g.FillRectangle(Brushes.Aquamarine, re);//根据矩形区域绘画一个矩形

例:

/// <summary>

/// 画线条

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void button1_Click(object sender, EventArgs e)

{

Graphics g = this.CreateGraphics();

Point p = new Point(10, 10);

Point p1 = new Point(10,500);

Pen pen = new Pen(Color.Black, 4);//定义一个黑色 4像素宽的画笔

//pen.DashStyle = DashStyle.Dot;//由点构成的线

pen.DashStyle = DashStyle.Dash;//由线段构成的线

g.DrawLine(pen, p, p1);//画一条线

g.Dispose();//释放资源

}

GIP画图的更多相关文章

  1. Ubuntu 16.10 安装KolourPaint 4画图工具

    KolourPaint 4画图工具简单实用,可以绘画.视频处理和图标编辑: • 绘画:绘制图表和“手绘” • 视频处理:编辑截图和照片;应用特效 • 图标编辑:绘画剪贴和标识透明化 1.在Ubuntu ...

  2. Android开发之画图的实现

    Android开发之画图的实现    四天前上完安卓的第一节课,真的是一脸懵逼,尽管熊哥说和java是差不多的,然而这个包和那个包之间的那些转换都是些什么鬼呀!!!但是四天的学习和操作下来,我觉得安卓 ...

  3. matlab画图函数plot()/set/legend

    简单plot()/legend/XY轴范围axis 除了坐标轴信息外还可以添加其它的信息,如所画曲线的信息等:测试代码如下 x=0:pi/20:2*pi; y1=sin(x); y2=cos(x); ...

  4. 对Raphael画图标的一个jquery简单封装

    公司要做一个项目的demo,要求地图上可以插红旗,所以就用到了Raphael. 因为是个demo,所以地图就用了一张图片,效果如下: 所以为了更好的封装一下这个功能,就写了一个简单的插件:jquery ...

  5. java画图之曲线拖动

    目标:在窗体上按下鼠标按键.然后拖动鼠标,在按下和拖动之间绘制曲线 事件机制 事件源对象:窗体 事件监听方法:addMouseListener(MouseListener l);addMouseMot ...

  6. java画图之初体验

    1.实现画图程序所需的API类 JFrame JButton ActionListener              动作事件接口 ActionEvent                        ...

  7. 【JavaScript】操作Canvas画图

    1.页面添加 Canvas 标签 标签内可以写文字,浏览器不支持Canvas的情况下显示, 2.js获取 Canvas 标签 3.利用js函数画图,[线][图][文字] 源:http://www.li ...

  8. 用Canvas制作简单的画图工具

    今天用Canvas制作了一个画图工具,非常简单,功能也不是很多,主要有背景网格,画线,画圆,画矩形和画圆角矩形,也用到了canvas的一些基本知识,在这里一一列举. 1.线段的绘制: 如何绘制真正的1 ...

  9. html5之canvas画图基础

    HTML5+CSS3的好处是,你可以编写一个页面分别用于不同的平台,只需要设置不同的css样式就可以了,现在基本主流浏览器都支持全新的HTML5和CSS3,因为它的跨平台开发.因为是原生代码所以它的页 ...

随机推荐

  1. sass,compass学习笔记总结

    最近在进行百度前端技术学院的任务,知道自己基础薄弱,可没想到弱到这种地步,同时在安装各种软件的同时遇到了各种坑,查阅了各种资料,一个个解决的时候也发现自己凌乱了.学习总结,在脑海中形成自己的学习系统才 ...

  2. JQuery动画之滑入滑出动画

    1. 滑入动画(类似于商店的卷帘门) $(selector).slideDown(speed, 回调函数); 解释: 此语句实现的功能为, 在XX时间内, 下拉动画, 显现元素. 当 slideDow ...

  3. 【洛谷2050】 [NOI2012]美食节(费用流)

    大家可以先看这道题目再做! SCOI2007修车 传送门 洛谷 Solution 就和上面那道题目一样的套路,但是发现你会获得60~80分的好成绩!!! 考虑优化,因为是SPFA,所以每一次只会走最短 ...

  4. mitmproxy修改二级代理

    第一步 mitmweb --mode upstream:http://114.240.101.242:5672 -s server.py 第二步 def request(self, flow: mit ...

  5. python获取hive表时间格式最大分区

    #获取表的最大分区 import boto3 from datetime import datetime,timedelta def get_max_partition(db_name,table_n ...

  6. Linux命令(用户管理、组和时间管理)

    用户管理    Linux系统是一个多用用户的系统 用户分为三类:      超级用户(root)用户的id是0     伪用户     用户的id是1----499,虽然存在,但不能被登录      ...

  7. redis 字符串数据(string)

    Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下: 语法 redis 127.0.0.1:6379> COMMAND KEY_NAME 实例 redis 127. ...

  8. HSBToolBox

    HSBToolBox.exe Unzip all files to the folder where Hearthbuddy.exeThen just run HSBToolBox.exe [asse ...

  9. C++ UFT-8和GB2312间的转换

    在这个帖子找到的代码 还蛮好用的 https://bbs.csdn.net/topics/391040755 #include <codecvt> #include <locale& ...

  10. python下载服务器

    大佬们,你们还在为传输文件时利用U盘插拔而苦恼吗,还在为设置文件共享而苦恼吗?别苦恼了,教你一秒实现文件的传输. 首先我们都要有python环境,这个肯定有. 下面就是一秒,在你要传的文件的目录下输入 ...