在VB中,除了使用图形控件(如Line、Shape)之外,还提供了创建图形的一些方法,如Line方法实现画直线和矩形,Circle方法实现画圆、画圆弧、画椭圆等。
1.Line——画线和画矩形的方法
(1)Line方法画线
画线有两种方式:两点边线和多点折线方式。
格式:[Object.]Line[[step](X1,Y1)]-[step](X2,Y2)[,Color]。
说明:在对象上画直线,各参数的含义如表8-4所示。
表8-4 Line方法中各参数的含义
①绘制两点之间连线
格式1:[容器对象名.]Line[(X1,Y1)]-(X2,Y2)[,Color]。
说明:如果容器对象名省略则指当前窗体;默认的起点坐标则以当前输出位置为起点;省略Color项则为容器对象的ForeColor属性;坐标点为Single类型表达式。
例如,下面的语句分别在窗体Form1、控件Picture1上画直线。
Form1.Line(10,200)-(1000,300),vbGreen '窗体坐标
Picture1.Line(20,100)-(800,200),RGB(0,0,255) '图片框坐标
格式2:[容器对象名.]Line[(X1,Y1)]-Step(X2,Y2)[,Color]。
说明:所绘制直线的两个端点位置为(X1,Y1)和(X1+X2,Y1+Y2)。
例如,下列语句在窗体Form1画线。
Form1.Line(10,200)-Step(1000,300),vbRed '窗体坐标
上面所绘制直线的两个端点位置为(10,200)和(1100,500)。
②绘制多点折线
连续使用缺省起点、画两点连线,可以绘制多点折线,每句的终点位置为下一句的起点位置,首句或是采用格式1或是以当前输出位置作为起点。
例如,下面的语句在窗体Form1分别画三条折线,构成一个三角形。
Line(200,150)-(800,300) '画一条从(200,150)到(800,300)的直线段,颜色为前景色
Line-(800,700) '画一条从(CurrentX、CurrentY)到(800,700)的直线段,颜色为前景色
Line-(200,150) '从当前位置开始,到(200,150)的直线段,颜色为前景色
(2)Line方法画矩形
格式:[容器对象名.]Line[(X1,Y1)]-[Step](X2,Y2)[,Color],B[F]。
说明:指定位置为矩形对角点,B表示绘制矩形,F表示填充,可选,以容器的FillStyle填充格式、FillColor颜色在矩形内部填充;图形边框的颜色由Color表达式指定,省略Color则为容器的ForeColor属性。例如:
Line(200,100)-(400,300),,B '画空心矩形,逗号不可省略,颜色为前景色
Line(500,300)-(800,600),vbBlue,BF '用蓝色画实心矩形,填充色也为蓝色
2.Pset——画点方法
格式:[object.]Pset [Step](X,Y)[,color]。
说明:该方法是在容器上(X,Y)处画点,颜色为color。其中,X、Y是Single类型表达式,缺省容器对象为当前窗体,缺省color则为容器对象前景色(ForeColor)。各参数的含义如表8-5所示。
表8-5 Pset方法中参数含义
需要说明的是Pset方法所画点的大小取决于容器的DrawWidth属性值。
例如:语句Form1.Pset(1000,300),vbRed表示在坐标(1000,300)处画一个红色的点,点的大小由容器对象Form1的DrawWidth值决定。
3.Point——获取某点颜色值方法
格式:[Object.]Point(X,Y)。
说明:返回容器对象中指定点的RGB颜色,其颜色值为长整型。各参数的含义如表8-6所示。如果由X和Y坐标所引用的点位于Object之外,Point方法的返回值为-1。
表8-6 Point方法参数含义
4.Circle——画圆、弧和椭圆的方法
在VB中,使用Circle方法可以画圆、弧和椭圆。
(1)使用Circle方法画圆
格式:[Object.]Circle[Step](X,Y),radius[,Color]。
说明:以(X,Y)为圆心、以radius为半径的圆,圆的颜色为Color值。若Object省略则为当前为容器对象名,有Step时则以(CurrentX+X,CurrentY+Y)为圆心,Color选项用法同前。
例如,下面语句在当前窗体中绘制一个圆,颜色为蓝色。
Circle(500,600),300,vbBlue
(2)使用Circle方法画弧
格式:[Object.]Circle[Step](X,Y),radius,[Color],Start,End。
说明:以Start弧度为起点,按逆时针方向到End弧度为止画一段圆弧(平行于X轴的正向为0弧度)。如果Object省略则为当前为容器对象名,Start、End为Single类型表达式,其他选项的用法同前。如果Start为负值,该方法还画出一条从圆心到圆弧相应端点的连线,参数End也同样。
例如:下列语句在当前窗体中绘制一段弧(或扇形)。
(www.xing528.com)
(3)Circle方法画椭圆
格式:[Object.]Circle[Step](X,Y),Radius,[Color],[Start,End],Aspect。
说明:其中Aspect是椭圆纵轴与横轴之比,为Single类型表达式取正值。如果Aspect的值小于1,则Radius为横轴的长度,否则为纵轴的长度,可省略某个参数,但不能省略“,”号。
例如:下列语句在当前窗体中绘制2个不同纵横比的椭圆。
【案例8-2】正弦曲线绘制示例。
【案例要求】
在窗体上绘制一条正弦曲线,自定义坐标系,界面设计如图8-4中的设计效果。
【案例操作】
(1)在窗体单击事件中输入如下代码。
(2)按F5键或点击工具栏中的“运行”按钮运行程序,单击窗体后运行结果如图8-4中运行效果所示。
图8-4 绘制正弦曲线界面
【案例8-3】利用PSet方法复制图像。
【案例要求】
将窗体上图片框Picture1中的图像复制到图片框Picture2中,图片的色彩、纵横比保持不变。
【案例操作】
(1)界面设计
在窗体上分别放置两个图片框Picture1、Picture2,命令按钮Command1、Command2,如图8-5中设计效果所示。
图8-5 图像复制界面
(2)代码设计
(3)运行程序
按F5键或点击工具栏中的“运行”按钮运行程序,单击“复制”按钮运行结果如图8-5中运行效果所示。
【案例8-4】使用Circle方法画同心圆示例。
【案例要求】
在窗体的图片框Picture1中动态画出以图片框中心为圆心,以随机数产生的半径作为圆的半径和以随机数产生的颜色的同心圆。
【案例操作】
(1)界面设计
在窗体上添加一个图片框Picture1,2个命令按钮Command1、Command2,一个定时控件Timer1,如图8-6中设计效果所示。
图8-6 绘制同心圆界面
(2)代码设计
(3)运行程序
按F5键或点击工具栏中的“运行”按钮运行程序,运行结果如图8-6中运行效果所示。
【案例8-5】画图方法、属性综合应用示例。
【案例要求】
在窗体上,利用画图的方法和相关属性画矩形、艺术圆和饼图。
【案例操作】
(1)界面设计
在窗体上分别添加3个命令按钮(Command1、Command2、Command3)并修改其Caption属性,设计界面如图8-7中的设计效果所示。
图8-7 利用画图方法画矩形、艺术圆、饼图
(2)代码设计
(3)运行程序
按F5键或点击工具栏中的“运行”按钮运行程序,分别点击画矩形、艺术圆和饼图按钮,运行结果如图8-7中运行效果所示。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。