欢迎来到天天文库
浏览记录
ID:45492314
大小:363.50 KB
页数:32页
时间:2019-11-13
《码农手册 图形操作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、11.1.1默认坐标系统VisualBasic系统中的每个容器都有一个坐标系,如图11-1所示。构成一个坐标系,需要三个要素:坐标原点、坐标度量单位、坐标轴的长度与方向。坐标度量单位由容器对象的ScaleMode属性决定。缺省时为Twip。每英寸1440个Twip,20个Twip为一磅。图11-111.1.2用户自定义坐标系统一、设置坐标系统的刻度单位用户可根据实际需要用ScaleMode属性设置坐标系统的刻度单位。ScaleMode属性的取值及含义如下表11-1所示。表11-1内部常数值含义 VbU
2、ser0指出ScalHeight、ScalWidth、ScaleLeft、ScaleTop属性中的一个或多个设置为自定义的值。 VbTwips1 (缺省值)单位是缇 VbPoints2 磅 VbPixels3 像素(监视器或打印机分辨率的最小单位) VbCharacters4 字符(水平每个单位=120缇;垂直每个单位=240缇) VbInches5 英寸 VbMillimeters6 毫米 VbCentimeters7 厘米说明:◆当设置容器对象(例如,窗体或图片框)的ScaleMode属性值>0,
3、将使容器对象的ScaleLeft和ScaleTop自动设置为0,ScaleHeight和ScaleWidth的度量单位也将发生改变。◆用ScaleMode属性只能改变刻度单位,不能改变坐标原点及坐标轴的方向。二、使用Scale属性建立自己的坐标系(一)重新定义坐标原点属性ScaleTop,ScaleLeft的值用于控制对象左上角坐标,改变坐标系的原点位置。所有对象的ScaleTop,ScaleLeft属性的缺省值为0,坐标原点在对象的左上角。同样,ScaleLeft的设置值可向左或向右平移坐标系的Y轴
4、。【例】在图11-2所示的窗体中,按下命令按钮将标签移动到坐标原点。若使用以下代码:PrivateSubCommand1_Click()Label1.Left=0Label1.Top=0EndSub则使用默认的坐标系统,原点在窗体的左上角,运行时单击按钮“将标签移动到原点”,标签位置则如图11-3所示。如果改用以下代码:PrivateSubCommand1_Click()Form1.ScaleLeft=200Form1.ScaleTop=300Label1.Left=0Label1.Top=0EndS
5、ub运行时单击按钮,标签的位置如图11-4所示。这是因为ScaleLeft和ScaleTop属性将窗体左上角的坐标定义为(200,300)。若将代码改写为:PrivateSubCommand1_Click()Form1.ScaleLeft=200Form1.ScaleTop=300Label1.Left=200Label1.Top=300EndSub则运行时单击按钮,标签的位置如图11-3所示。图11-2图11-3图11-4(二)重定义坐标轴方向和度量单位属性ScaleWidth,ScaleHeigh
6、t的值可确定对象坐标系X轴与Y轴的正向及最大坐标值。缺省时其值均大于0,此时,X轴的正向向右,Y轴的正向向下。对象右下角坐标值为(ScaleLeft+ScaleWidth,ScaleTop+ScaleHeight)。注意:如果ScaleWidth的值小于0,则X轴的正向向左,如果ScaleHeight的值小于0,则Y轴的正向向上。【例】使用ScaleWidth和ScaleHeight[zd]改变窗体刻度单位。设窗体高度是2000Twips,宽度是3000Twips。此时水平和垂直刻度单位均为1Twip
7、s。如果设置:ScaleHeight=500,则将窗体的高度划分为500个单位,每个单位为2000/500,即4Twips。如果设置:ScaleWidth=1000,则将窗体的宽度划分为1000个单位,每个单位为3000/1000,即3Twips。注意:将ScaleHeight、ScaleWidth、ScaleLeft与ScaleTop属性设置为任何值都自动将ScaleMode设置为0。(三)利用Scale方法设置坐标系格式:[对象.]Scale[(xLeft,yTop)-(xRight,yBotto
8、m)]其中:xLeft,yTop:对象的左上角坐标值。xRight,yBottom:对象的右下角坐标值。注意:可在程序中使用Scale方法改变坐标系统。当Scale方法不带参数时,取消用户定义的坐标系,采用缺省坐标系。【例】在图片框Picture1中打印5行5列的单位矩阵。PrivateSubPicture1_Click()Dima(5,5)AsIntegerPicture1.Scale(0,0)-(6,6)Fori=1To5Picture1.Curre
此文档下载收益归作者所有