魏豪明制作第5章绘制图形坐标系统魏豪明制作使用缺省刻度5.1.2改变对象的坐标系统每个窗体和图片框都有几个刻度属性,如ScaleLeft、ScaleTop、ScaleWidth、ScaleHeight以及ScaleMode和一个方法如Scale,它们可用来定义坐标系统。对于VisualBasic中的对象,缺省刻度将坐标(0,0)放置在对象的左上角,单位为缇。使用无参数的Scale方法可返回缺省刻度。魏豪明制作选择标准刻度表5-1ScaleMode属性值ScaleMode设置值描述0用户定义。若直接设置了ScaleWidth、ScaleHeight、ScaleTop或ScaleLeft,则ScaleMode属性自动设为01缇。这是缺省刻度,1440缇等于一英寸2磅。72磅等于一英寸3像素。像素是监视器或打印机分辨率的最小单位。每英寸像素的数目由设备的分辨率决定4字符。打印时,一个字符有1/6英寸高、1/12英寸宽5英寸6毫米7厘米魏豪明制作创建自定义刻度属性ScaleLeft和ScaleTop属性改变坐标系统的属性设置ScaleWidth和ScaleHeight属性魏豪明制作(3)改变坐标系统的属性设置图5-2刻度从(100,100)变化到(200,200)魏豪明制作使用刻度方法改变坐标系统一个更有效的改变坐标系统的途径是使用Scale方法,其一般语法格式为:[对象].Scale(x1,y1)-(x2,y2)其中,x1和y1的值决定ScaleLeft和ScaleTop属性的设置值;两个x2与x1之间的差值和两个y2与y1之间的差值,分别决定了ScaleWidth和ScaleHeight属性的设置值。例如,为一窗体设置坐标系统,两个端点设置为(100,100)和(200,200):Scale(100,100)-(200,200)该语句定义窗体为100单位宽和100单位高。用该刻度,下述语句将一个形状控件移动窗体宽度行程的五分之一:shpMover.Left=shpMover.Left+20指定x1x2或y1y2的值,与设置ScaleWidth或ScaleHeight为负值的效果相同。魏豪明制作QBColor函数5.1.3使用VisualBasic颜色表5-2QBColor函数可选择的颜色值颜色值颜色0黑色8灰色1蓝色9亮蓝色2绿色10亮绿色3青色11亮青色4红色12亮红色5洋红色13亮洋红色6黄色14亮黄色7白色15亮白色魏豪明制作RGB函数表5-33种颜色的相对亮度组合颜色红色值绿色值蓝色值黑色000蓝色00255绿色02550青色0255255红色25500洋红色2550255黄色2552550白色255255255魏豪明制作颜色属性FillColorForeColorBackColorBorderColor魏豪明制作5.2直线和形状控件5.2.1直线控件常用属性BorderColor属性BorderStyle属性BorderWidth属性x1、x2、y1、y2属性魏豪明制作BorderStyle属性表5-4BorderStyle属性常量值描述Transparent0透明线Solid1实线Dash2虚线Dot3点线Dash-Dot4点划线Dash-Dot-Dot5双点划线InsideSolid6内实线魏豪明制作Shape属性5.2.2形状控件常用属性表5-5Shape属性常量值描述Rectangle0矩形Square1正方形Oval2椭圆Cirle3圆形RoundedRectangle4圆角矩形RoundedSquare5圆角正方形魏豪明制作BackStyle属性用来设置所绘制图形的背景风格,其属性值只有透明(0-Transqarent)和不透明(1-Opaque),在默认状态下值为“0-Transqarent”。魏豪明制作FillStyle与FillColor属性(1)FillColor属性(2)FillStyle属性表5-6FillStyle属性常量值描述Solid0实心Transparent1透明HorizontalLine2水平线VerticalLine3垂直线UpwardDiagonal4右对角斜线DownwardDiagonal5左对角斜线Cross6十字交叉线DiagonalCross7对角交叉线魏豪明制作图5-3FillStyle属性值不同的各种矩形魏豪明制作BorderStyle、BorderWidth与BorderColor属性(1)BorderStyle属性用来指定图形边界线的类型,与直线控件中的BorderStyle属性相同。(2)BorderWidth属性用来指定图形边界宽度。(3)BorderColor属性用来指定图形边界的颜色。魏豪明制作5.3图形绘制方法5.3.1用Pset方法画点例如:设计一个程序,在窗体中随机地显示若干彩色的点。其操作步骤如下:图5-4控件在窗体中的位置魏豪明制作表5-7对象属性设置对象属性设置窗体CaptionPset方法实例(名称)Form1命令按钮1Caption画点(名称)Command1命令按钮2(名称)Command2Caption退出魏豪明制作图5-5演示程序魏豪明制作Line方法5.3.2用Line方法绘制直线和矩形若要在两点之间绘制直线,除直接运用“线条控件”外,还可以运用VisualBasic中的Line方法,其一般格式为:[对象].Line[[Step](xl,y1)]-[Step](x2,y2)[,颜色](x1,y1):为起点坐标,如果省略则为当前坐标。带Step关键字时表示与当前坐标的相对位置。(x2,y2):为终点坐标。带Step关键字时表示与起点坐标的相对位置。魏豪明制作实例设计一个程序,当在程序中单击“绘制矩形”按钮时,图片框中绘制出类型不同的矩形,其操作步骤如下:表5-8对象属性设置对象属性设置窗体CaptionLine方法实例(名称)Form1命令按钮Caption绘制矩形(名称)Command1图片框(名称)Picture1魏豪明制作图5-6演示程序魏豪明制作魏豪明制作Circle方法5.3.3用Circle方法绘制圆、椭圆和弧形Circle方法可用于在对象上画圆、椭圆或圆弧,其一般语法格式为:[对象].Circle[Step](x,y),半径[,颜色,起点,终点,纵横比](x,y):是圆、椭圆或圆弧的中心坐标。带Step关键字时表示与当前坐标的相对位置。起点和终点:以弧度为单位的圆弧起点和终点位置,取值在-2π~2π之间。当起点或终点为负数时,画一条连接圆心到端点的线。纵横比:决定是画圆还是椭圆,可以是整数也可以是小数,但不能是负数。当纵横比较大时,椭圆沿垂直轴线拉长,而较小时则沿水平轴线拉长。魏豪明制作实例设计一个程序,当在程序中单击不同的按钮时,窗体中绘制出圆、椭圆和弧形。其操作步骤如下:图5-7控件在窗体中的位置魏豪明制作表5-9对象属性设置对象属性设置窗体CaptionCircle方法实例(名称)Form1命令按钮1Caption绘制正圆(名称)Command1命令按钮2Caption绘制椭圆(名称)Command2命令按钮3Caption绘制弧形(名称)Command3魏豪明制作绘制弧形绘制正圆绘制椭圆图5-8演示程序魏豪明制作PaintPicture方法5.3.4PaintPicture方法PaintPicture方法主要用来在窗体、图片框或打印机对象上绘制图形文件,图形文件的类型包括.bmp、.ico、.wmf、.emf、.cur、.ico和.dib等,使用PaintPicture方法,可以实现图片的移动、翻转、缩放、裁剪等操作,其在程序代码中的一般格式为:[对象].PaintPicture图片,x1,y1,[宽度1,[高度1,x2[y2[宽度2[,高度2[,位操作常数]]]]]]]魏豪明制作表5-10位操作常数常数描述vbDstInvert反转源位置vbMergeCopy合并模式和源位置vbMergePaint用Or运算合并反转的源位图和目标位图vbSrcInvert用Xor运算合并目标像素与源位图vbSrcPaint用Or运算合并目标像素与源位图vbNotSrcCopy将反转的源位图复制到目标中vbNdSrcErase用Or运算合并源位图和目标位图,然后反转vbPatCopy将模式复制到目标位图vbPatInvert用Xor运算合并目标位图与模式vbPatPaint用Or运算合并反转的源位图与模式,然后用Or运算合并上述结果与目标位图vbSrcAnd用And运算合并目标像素与源位图vbSrccopy将源位图复制到目标位图vbSrcErase反转目标位图并用And运算合并所得结果与源位图魏豪明制作实例设计一个应用程序,通过单击不同的按钮,实现图片的移动、翻转和缩放功能。其操作步骤如下:图5-9控件在窗体中的位置魏豪明制作表5-11对象属性设置对象属性设置窗体CaptionPaintPicture方法实例(名称)Form1命令按钮1Caption移动(名称)Command1命令按钮2Caption翻转(名称)Command2命令按钮3Caption缩放(名称)Command3命令按钮4Caption退出(名称)Command4图片框(名称)Picture1魏豪明制作图5-10演示程序魏豪明制作1.选择题(1)在应用程序中若要画点,一般采用什么方法()。A.PsetB.LineC.CircleD.PaintPicture(2)在应用程序中绘制矩形,采用什么方法()。A.PsetB.LineC.CircleD.PaintPicture(3)在应用程序中绘制扇形,采用什么方法()。A.PsetB.LineC.CircleD.PaintPicture更多习题见书106页魏豪明制作