GDI 就是 window系统提供了一些函数,GDI+就是.NET里面对这些函数的封装,这些函数主要是在System.Drawing 里面,
他包含了 绘图设备,画笔,画刷,颜色等各种东西,反正就是那些窗口控件什么的都是用他画出来的,比如 按钮,菜单
滚动条什么的。
GDI/GDI+ 就是window系统自己使用的基本画图函数,主要用来绘制系统界面,所以速度是比较慢的,功能也是有限的
也只是2D的,大型游戏采用的是 硬件图形API,主要是DirectX,硬件加速,也就是显卡,速度快,功能强大,也复杂的很,
以后的系列再讲。。。
GDI/GDI+ 慢是慢,但是做一些小游戏,用来学习基本游戏编程的方法那是很不错的。。。你直接引用就可以了撒。。。
要想绘图,必须有一个Graphic对象,这个对象就是绘图设备,可以认为就是画图的东西,比如 窗口,PictureBox啊,反正
能显示的都可以搞个这个,一般用PictureBox来作为画图的地方。。。
现在新建一个工程,在窗口上放个PictureBox,背景设置为黑色以便看的清楚。。。
现在需要得到graphics 对象,可以调用 pictureBox1.CreateGraphics(), CreateGraphics() 既可为某个控件创建一个graphocs,当然在pictureBox的paint事件里面也可以得到, private void pictureBox1_Paint(object sender, PaintEventArgs e),e.Graphics即可,
现在先用后者,绘制线,圆,文本等的代码如下:
- private void pictureBox1_Paint(object sender, PaintEventArgs e)
- {
- Pen p = new Pen(Color.Red,2.0f);
- //画线
- e.Graphics.DrawLine(p, 0, 0, 200, 200);
- //画圆
- p.Color = Color.Green;
- e.Graphics.DrawEllipse(p,new Rectangle(10,10,100,100));
- //填充圆
- p.Color = Color.Green;
- e.Graphics.FillEllipse(Brushes.Brown, 10, 10, 100, 100);
- //画椭圆
- p.Color = Color.Indigo;
- e.Graphics.DrawEllipse(p,new Rectangle(10,10,130,170));
- //画字符串
- p.Color = Color.Yellow;
- e.Graphics.DrawString("这是画出来的文本", this.Font, Brushes.Blue, 20.0f, 20.0f);
- }
注意 Pen代表钢笔,也就是画形状的,也就是Draw开头的一系列函数,Brushes这个类里面包含很多预定义颜色的刷子,用来填充形状,也就是Fill开头的一系列函数。
当然Graphics还有很多其他函数,看看说明就应该知道了吧,下一次讲一个五子棋的实现过程。。。