《Visual Basic.NET程序设计》 苗国义 课后习题答案 第8章.doc
第8章
1.答:
所有的GDI+类包含在System.Drawing、System.Text、System.Printing、System.Internal、System.Imaging、System.Drawing2D以及System.Design等命名空间中。System.Drawing命名空间提供基本的图形功能,每次创建新项目时,系统默认将该命名空间的引用添加到项目引用中,因此应用程序可以使用基本的绘图功能,而其他高级绘图功能则由System.Drawing.Drawing2D、System.Drawing.Imaging和System.Drawing.Text命名空间提供,若要在应用程序中使用它们,需通过Imports语句引入它们。
2.答:
在VisualBasic.NET中绘图图面可以是窗体、也可以是某个对象(如文本框、按钮等对象)。
坐标系是图形设计的基础,绘制图形都需要在一个坐标系中进行。在VisualBasic.NET中,是在一个逻辑坐标系中进行的,它是一个相对的坐标系。无论基于哪一种对象,坐标系总是以该对象的左上角为原点(0,0)。除了原点外,坐标系还包括横坐标(x轴)和纵坐标(y轴),x值是指点与原点的水平距离,y值是指点与原点的垂直距离
3.答:
用GDI+绘制图形的基本步骤:
(1)创建Graphics对象;
(2)建立绘图工具;
(3)绘制和填充图形;
(4)释放对象。
4.答:
创建Graphics对象的常用方法:
(1)通过Paint事件处理程序中的PaintEventArgs创建Graphics对象;
(2)使用窗体或控件的CreateGraphics方法创建Graphics对象;
(3)从Image继承的任何对象创建Graphics对象。
5.答:
在VisualBasic.NET里,只有PictureBox的位图是永久的,而在Graphics对象上绘制的任何东西都是临时的,它并没有成为Graphics对象的一部分,只有在控件或窗体不需要重绘时才能看到,只要窗体一旦被重绘,图形就消失了。
那么,如何才能让各种绘图方法的输出结果在窗体上永久保留呢?建议把图形语句放到Paint事件处理程序里,这个事件是在窗体重绘时被调用的。Paint事件处理程序传递e参数,其中包含了窗体的Graphics对象,这样就可以在Paint事件处理程序里创建一个Graphics对象,然后在这个对象上进行绘图。请读者参考8.4.1里介绍的创建Graphics对象的方式,通过Paint事件处理程序中的PaintEventArgs创建Graphics对象,能让各种绘图方法的输出结果在窗体上永久保留。
6.答:
源代码如下:
ImportsSystem.Drawing.Drawing2D引入命名空间
PublicClassForm1
PrivateSubForm1_Paint(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.PaintEventArgs)HandlesMe.Paint
Me.Size=NewSize(309,328)设置窗体的大小为309*328,考虑标题栏占位
DimiAsInteger定义循环控制变量
DimgAsGraphics定义Graphics类的变量
g=e.Graphics()取得窗体的Graphics对象实例
DimpAsNewPen(Color.Black,1)定义线宽为1个像素的黑色画笔
p.DashStyle=DashStyle.Solid将画笔的线型样式设置为实线
Fori=0To300Step30循环11次用于产生10行10列网络
g.DrawLine(p,0,i,300,i)绘制水平网络线
g.DrawLine(p,i,0,i,300)绘制垂直网络线
Next
EndSub
EndClass
效果如图8-1所示
图8-1
7.答:
源代码如下:
ImportsSystem.Drawing.Drawing2D引入命名空间
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click