一、判断题
1.用Cls方法能够清除窗体或图片框中用picture属性设置的图形。
2.picture图片框既可用来显示图片和绘制图形,也可用print方法来显示文字。
3.移动框架时框架内控件也跟随移动,所以框架内各控件的left、top属性值也随之改变。
4.框架控件和形状控件都不能响应用户的鼠标单击事件。
5.图片框的Move方法不仅可以移动图片框,而且还可以改变该图片框的大小,同时也会改变该图片框控件的有关属性值。
6.VB提供的几种标准坐标系的原点都是在绘图区域的左上角,如果要把坐标原点放在其他位置,则需要使用自定义坐标系统。
7.Image和PictureBox的 Autosize属性的功能不同。
8.当Scale方法不带参数时,则采用默认坐标系。
9.使用Line方法画矩形时,必须在指令中使用关键字B和F。
10.Circle方法正向采用顺时针方向。
二、选择题
1.改变控件在窗体中的左右位置应修改该控件的 属性。
A.Top B.Left C.Width D.Right
2.重新定义图片框控件的坐标系统,可采用该图片框的 方法。
A.Scale B.ScaleX C.ScaleY D.SetFocus
3.若在图片框上用绘图方法绘制一个圆,则图片框的 属性不会对该圆的外观产生影响。
A.BackColor B.ForeColor C.DrawWidth D.DrawStyle
4.形状控件所显示的图形不可能是 。
A.圆 B.椭圆 C.圆角正方形 D.等边三角形
5.执行form1.scale(10,-20)-(-30,20)语句后,form1窗体坐标系X轴和Y轴的正方向是 。
A.向左和向下 B.向右和向上 C.向左和向上 D.向右和向下
6.对象的边框类型由 属性设置。
A.DrawWidth B.DrawStyle C.Borderstyle D.ScaleMode
7.Cls可清除窗体和图片框中的 内容。
A.运行时输出的文字和图形 B.设计时放置的控件
C.Picture属性设置的背景图案 D.以上三项
8.下列用Line方法绘制红色实心矩形的语句正确的是 。
A.Line(10,10)-Step(50,50),RGB(255,0,0),BF
B.Line(10,10)-Step(60,60),B,RGB(255,0,0),BF
C.Line(10,10)-Step(60,60),RGB(255,0,0),B
D.Line Step (10,10)-Step(50,50),BF
9. 要清除PictureBox控件中的图形,必须用哪条命令 。
A. Picture1.Picture = LoadPicture()B. Picture1.Picture = ""C. Picture1.Picture = LoadPicture("")D. kill Picture1.Picture
10.用Scale方法改变了窗体坐标系以后,被改变了属性值的窗体属性名是 。
A.ScaleWidth B.Width C.Height D.DrawMode
三、填空题
1.以图片框pic1的中心位置为圆心,以700为半径在pic1上画一个圆的方法是_____________________________________________。
2.画图语句picture1.circle(800,1000),500的含义是 。
3.使用Scale方法建立窗体Form1的用户坐标系统,其中窗体左上角坐标为(-200,250),右下角坐标为(300,-100),具体形式为 。
4. PictureBox控件可通过设置其 属性为True,使图片框可自动调整大小以适应图片的大小;而Image控件可通过设置其________________________属性为True,使其加载的图片能自动调整大小以适应Image。
四、程序阅读题
1.写出下列各段程序运行的结果。
Private Sub Command1_Click()
Dim x As Double, y As Double
x = Width / 4
y = Height / 4
Line (x, y)-Step(1000, 1000), , B
Line -(x, y)
End Sub
2.画出下列各段程序运行的结果。
Private Sub Picture1_MouseDown(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
x0 = X: y0 = Y
End Sub
Private Sub Picture1_MouseUp(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
If Picture1.FillStyle <> 0 Then
Picture1.FillStyle = 0
Else
Picture1.FillStyle = 1
End If
Picture1.Line (x0, y0)-(X, Y), RGB(255, 255, 0), B
End Sub
五、程序填空题
1. 完成一个行星程序的设计,一个蓝色的小圆围绕红色大圆沿椭圆轨道运行。椭圆方程为:x=x0+rx*cos(alfa),y=y0+ry*sin(alfa),其中X0,Y0为椭圆圆心坐标,RX为水平半径,RY为垂直半径,ALFA为圆心角。具体要求如下:
1)在窗体中引入一个合适大小的形状控件SHAPE2,将SHAPE2的SHAPE属性设置为圆形、蓝色。
2)TIMER的时间间隔为0.1秒。
3)代码窗口中的内容填充完整。
效果如图10.17所示。
图10.17 行星运动
Dim rx As Single, ry As Single
Dim alfa As Single
Private Sub Form_Load() ' 窗体最大化充满屏幕
Form1.Left = 0
Form1.Top = 0
Form1.Width = (1)
Form1.Height = (2) ' 将SHAPE1居中
Shape1.Left = Form1.ScaleWidth / 2 - Shape1.Width / 2
Shape1.Top = Form1.ScaleHeight / 2 - Shape1.Height / 2
rx = Form1.ScaleWidth / 2 - Shape1.Width / 2
ry = Form1.ScaleHeight / 2 - Shape1.Height / 2 ' 将SHAPE2的起始位置
定位在水平轴的0度位置上
Shape2.Left = Form1.ScaleWidth / 2 + rx - Shape2.Width / 2
Shape2.Top = Form1.ScaleHeight / 2 - Shape2.Height / 2
End Sub
Private Sub Timer1_Timer()
alfa = alfa + 0.05
x = Form1.ScaleWidth / 2 + rx * Cos(alfa)
y = Form1.ScaleHeight / 2 + ry * Sin(alfa)
Shape2.Left = (3)
Shape2.Top = (4)
End Sub
Private Sub Command1_Click() ' 设置图片框前景颜色
CommonDialog1.Action = 3
(1)
End Sub
Private Sub Command2_Click() ' 清除绘制图形
Picture1.Cls
End Sub
Private Sub Option1_Click() ' 选择线宽
Picture1.DrawWidth = 1
End Sub
Private Sub Option2_Click() ' 选择线宽
Picture1.DrawWidth = 3
End Sub ' 鼠标按下,确定当前坐标
Private Sub Picture1_MouseDown(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
(2)
(3)
End Sub ' 按下鼠标左键,移动鼠标画线
Private Sub Picture1_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
If Button = 1 Then (4)
End Sub
六、程序设计题
1.在窗体上画一条正弦曲线,变化范围在0~2π之间。
2.以缇为单位,以窗体中心点为原点,以窗体的高与宽中最小值的1/2为半径画一个半圆(线为蓝色,线粗为2twip,填充色为红色)。
3.x1、y1已声明为模块级变量,鼠标按下的事件过程如下:
Dim x1 As Single, y1 As Single
Private Sub Picture1_MouseDown(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
x1 = x: y1 = y
End Sub
编制事件过程Picture1_MouseUp,使得在图片框控件Pic1上拖动鼠标后,绘制出一个矩形,鼠标按下、抬起的位置分别为矩形斜对角线的定点,矩形轮廓线为红色,矩形内部填充色为绿色。
第10章 习题答案
一、 判断题
×√×××√√√××
二、 选择题
BAADA CAACA
三、 填空题
(1) pic1.Circle (pic1.ScaleLeft + pic1.ScaleWidth / 2, pic1.ScaleTop + pic1.ScaleHeight / 2), 700
(2) 以图片框(800,1000)为圆心画一个半径为500的圆
(3) Form1.scale (-200,250)-(300,-100)
(4) Autosize stretch
四、 程序阅读题
1、 窗体宽和高的1/4为起点,画一个连长为1000的正方形,并画出其正向对角线
2、 在图片框中交替画出空心和实心的矩形
五、 程序填空题
1、
(1) Screen.Width
(2) Screen.Height
(3) X
(4) Y
2、
(1)Picture1.ForeColor= CommonDialog1.Color
(2)If Option1.Value=True Then Picture1.DrawWidth=1
(3)If Option2.Value=True Then Picture1.DrawWidth=3
(4)Picture1.Pset (x,y)
六、 程序设计题
1、
Private Sub Form_Click()
Const Pi = 3.1415926
Dim i As Single
Form1.Scale (0, 1)-(2 * Pi, -1)
Form1.Line (0, 0)-(2 * Pi, 0)
Form1.Line (0, -1)-(0, 1)
For i = 0 To 2 * Pi Step 0.0001
Form1.PSet (i, Sin(i))
Next i
End Sub
2、
Private Sub Form_Click()
Dim r As Single, x As Single, y As Single
x = Form1.ScaleWidth / 2
y = Form1.ScaleHeight / 2
r = x
If r > y Then r = y
Form1.Circle (Form1.ScaleLeft + Form1.ScaleWidth / 2, Form1.ScaleTop + Form1.ScaleHeight / 2), r, vbBlue, -2 * 3.14, -3.14
End Sub
Private Sub Form_Load()
Form1.DrawWidth = 3
Form1.FillStyle = 0
Form1.FillColor = vbRed
End Sub
3、
Dim x1 As Single, y1 As Single
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, yAs Single)
x1 = x: y1 = y
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Picture1.Line (x1, y1)-(x, y), vbRed, B
End Sub
Private Sub Form_Load()
Picture1.FillStyle = 0
Picture1.FillColor = vbGreen
End Sub