每天学一点---图形图像GDI编程

news/2025/2/26 7:26:52
首先先了解什么是 GDI 呢?GDI 是从 Windows 95 到 Windows 2000 随附的旧版绘图装置接口 ( Graphics Device Interface), 是属于绘图方面的 API ( Application Programming Interface)。因为应用程序不能直接控制硬件, 所以当我们要进行绘图的动作时, 必须透过 GDI 才能完成
GDI+ 又是什么呢?GDI+ 是 GDI 的后续产品, 是一种绘图装置接口, 可将应用程序和绘图硬件分隔, 让我们能够撰写与装置无关的应用程序。它可以让我们不需注意特定显示装置的详细数据, 便可在屏幕或打印机显示信息。我们可以呼叫 GDI+ 类别所提供的方法, 然后这些方法会适当地呼叫特定的装置驱动程序, 而完成绘图
System.Drawing   命名空间包含许多基本与进阶的绘图类别, 供程序开发者来完成各种绘图功能。本章在此仅介绍 System.Drawing 命名空间中一些常用的绘图类别。
 
 
 
在「GDI+」中所采用的坐标系统,与平时人们较常用的坐标系统不同,主要差别在于,一般的二维坐标系,x轴与y轴分别是 往右往上递增(左图),而「GDI+」所采用的坐标系,x轴与y轴则分别是 往右往下递增(右图) 
 
2、绘图基本单位
在数学定义中,坐标上的最基本元素:「点」,其实是个长度与宽度都无穷小的概念单位,但是在计算器图学中,作画的最基本元素是「 像素 (pixel)
当我们的屏幕分辨率设定为1024*768时,表示在x轴横坐标总共可以画1024个「像素」,在y轴纵坐标总共可以画768个「像素」
 
Graphics 类别是 GDI+ 的核心, 若要绘制任何图形, 都需要先取得 Graphics对象, 设定它的属性, 呼叫它的方法来完成绘图的工作。由于 Graphics 类别并未公开其建构子, 故无法以建构子来建立一个 Graphics 对象, 而是要从您所要绘图的组件取得一个 Graphics 对象, 其语法如下:
           Graphics g = 物件 .CreateGraphics
n以上叙述中的对象可为窗体 (Form) 及 Control 类别的衍生类别 (例如, Label, PictureBox 及TextBox 等...), 当上述对象呼叫 CreateGraphics 方法后, 会传回一个Graphics 对象, 您可利用此一 Graphics 对象在建立它的对象上绘图。例如以下叙述可取得窗体的 Graphics 对象。
           Graphics g = this.CreateGraphics
nC# 的绘图至少必须藉助 Graphics 与 Pen 类别对象的协助, 其中 Graphics 对象就好比一块画布, 而 Pen 类别对象就是画笔了。以下叙述可产生画笔对象, 画笔的线条颜色为黑色, 线条粗细为3。
        drawPen = New Pen(Color.Black, 3)
n绘图方法
Graphics 类别的常用绘图方法有
ØDrawLine(直线)、
ØDrawRectangle (矩形)、
ØDrawEllipse (椭圆)、
ØDrawCurve (曲线)、
ØDarwArc (弧线)、
ØDrawPie (扇形)、
ØDrawLines (多边形)、
ØDrawPolygon (封闭多边形)
ØDrawBezier (贝兹曲线)等。
。。。。。。。。。。。。。。。。。。。。。。。。。。不定时更新。。。。。。。。。。。。
 

转载于:https://www.cnblogs.com/jt880807/p/3195819.html


http://www.niftyadmin.cn/n/4667612.html

相关文章

关于GDP的经典解释

告诉你什么叫做GDP增长!关于GDP的经典解释。 两个聪明的经济学天才青年,经常为一些高深的经济学理论争辩不休。   一天饭后去散步,为了某个数学模型的证明两位杰出青年又争了起来,正在难分高下的时候,突然发…

MST的prim算法

int prim(int n){int lowcost[maxn]; //记录集合外的点到集合内的距离bool s[maxn]; //记录是否包含在集合中for(int i1;i<n;i){lowcostc[1];sfalse;}s[1]true; //初始化int sum0;for(int i2;i<n;i) //逐个找连接森林的最短边加入{in…

如何让google搜索的时候下雪

【谷歌会下雪】 只要在谷歌中搜“let it snow”你的屏幕就会下雪&#xff0c;下多了出霜还可以用鼠标画着玩&#xff0c;你的屏幕会被“霜冻”&#xff0c;点击屏幕上“除霜”按钮可以完成除霜。(少数浏览器不支持) 下到一定的时候就把屏幕护住了&#xff0c;就需要除霜了&…

Android如何实现边采集边上传--Camera类实现(后续发表MediaRecorder实现)

最近看了Sipdroid和ZXing两个开源代码,对于如何在Andrpid平台上实现边采集边上传的功能有了新的见解,同时也决定重新弄一下以前做的广州亚运排传的项目.先给大家说下软件的功能吧.拿出android手机然后采集实时的图片数据,并对这些采集的图片数据进行H264编码,然后根据协议上传到…

一文读懂分红险、万能险和投连险

一、分设账户的区别 分红险不设单独的投资账户&#xff0c;分红险的保障和分红账户是混合的。 万能险设有保障账户和一个单独的投资账户。 投连险也是保障账户和投资账户分离&#xff0c;并设置有几个不同投资账户&#xff0c;可能享有较高回报的同时也需承担一定的风险&#x…

这些混账的开源库在煞笔Windows系统上的编译方法

这些混账的开源库在煞笔Windows系统上的编译方法 母语不就是用来吐槽的么&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;说母语我不骂人难道还用英语么&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&…

WindowManager massge和handler

在一个可移动浮动按钮的demo源码学习中&#xff0c;有一些WindowManager的使用&#xff0c;在此做下总结。 1.翻译过来就是窗口管理&#xff0c;是和应用框架层的窗口管理器交互的接口&#xff0c;通过 mWindowManager (WindowManager) mContext.getSystemService(Context.WIN…

推荐一个好站点,音视频学习

http://www.shouyanwang.org/forum.php 我的话费充值店-各种面额 电信100元仅售98.60 联通100仅售99.00移动100仅售99.30