由於在visualbasic系統中有多種坐標定義,容易使初學者混淆,本文將詳細總結vb的坐標系統的一些基本概念,並提供坐標定義的詳細方法:
visualbasic坐標系統概述:
visualbasic的坐標系統是指在屏幕(screen)、窗體(form)、容器(container)上定義的表示圖形對象位置的平面二維格線,一般采用數對(x,y)的形式定位。其中,x值是沿x軸點的位置,最左端是缺省位置0。y值是沿y軸點的位置,最上端是缺省位置0。
在visualbasic坐標系中,沿坐標軸定義位置的測量單位,統稱為刻度,坐標系統的每個軸都有自己的刻度。坐標軸的方向、起點和刻度都是可變的,在後面的敘述中,將討論如何改變這些定義。
如何創建坐標系統:
創建圖形對象的坐標系統,一般有以下幾種方法:
1、使用系統缺省定義:
在系統缺省狀態下,visualbasic使用twips坐標系,以’缇’為單位(1缇的長度等於1/1440英寸;1/567厘米;1/20磅)。應當注意的是:這些值指示的是圖形對象打印尺寸的大小。而在計算機屏幕上的物理距離則根據監視器的大小及分辨率的變化而變化。
2、選擇系統標准刻度定義:
除了缺省的twips坐標系外,用戶還可以通過對象的scalemode屬性來設置其它的坐標刻度:(共有8種設置),現將這些設置列表如下:
scalemode值表示說明
0user用戶自定義
1twip缇,系統缺省設置
2point磅,每英寸約為72磅
3pixel像素,像素是監視器或打印機分率的最小單位。每英寸裡像素的數目由系統設備的分辨率決定。
4character字符,打印時,一個字符高1/6英寸,寬1/12英寸
5inch英寸,每英寸為2.54厘米
6millimeter毫米
7centimeter厘米
在上述設置值中,除了0和3以外,其它所有模式都是打印機所打印的單位長度。例如,某對象長為4個單位,當scalemode設為5時,打印時就是4英寸長。在程序中設定scalemode值的代碼如下:
'設窗體的刻度單位為厘米。
scalemode=7
'設picture1的刻度單位為像素。
picture1.scalemode=3
3、創建自定義坐標系統:
當scalemode=0時,即為用戶自定義模式,可采用設置對象的相應屬性,來創建所需的坐標系統,這些屬性是:
scaleleft:設置對象左邊距值
scaletop:設置對象上邊距值
scalewidth:設置對象寬度
scaleheight:設置對象高度
下面給出如下設置代碼:
scaleleft=100
scaletop=100
scalewidth=300
scaleheight=200
picture1.scaleleft=50
picture1.scaletop=50
則所定義的坐標系如下圖所示:
scaletop=100
picture1.scaleleft=50
以上代碼定義窗體左上角坐標為(100,100),定義窗體內圖形對象picture1距窗體左邊距離為50,上邊距離為50。scalewidth和scaleheight語句定義窗體內部寬度的1/300為水平坐標單位;當前窗體內部高度的1/200為垂直坐標單位。如果窗體的大小以後被調整,這些單位保持原狀。也就是說:scalewidth和scaleheight是按照對象的內部尺寸來定義單位的,並且這些尺寸不包括邊框厚度或菜單標題的高度。scalewidth和scaleheight是指對象內的可用空間的大小。它們決定了對象本身的坐標系統。這有別於內部尺寸和外部尺寸(由width和height屬性指定)定義,width和height總是按照容器的坐標系統來表示。另外以上刻度屬性都可包括分數,也可是負數。如果將scalewidth和scaleheight屬性設置值為負數即改變坐標系統的方向。
4.使用scale方法定義坐標系統:
一個更簡潔的改變坐標系統的途徑是使用scale方法。定義形式如下:
[object.]scale(x1,y1)–(x2,y2)
x1和y1的值,決定了scaleleft和scaletop屬性的設置值。x2-x1的差值和y2-y1的差值,分別決定了scalewidth和scaleheight屬性的設置值。若指定x1>x2或y1>y2的值,與設置scalewidth或scaleheight為負值的效果相同。例如:設定窗體坐標系統如下:
scale(100,100)-(200,200)
該語句定義等同於以下屬性設置:
scaletop=100:scaleleft=100:scalewidth=100:scaleheight=100
如何恢復缺省坐標系統:
在定義了其它坐標系後,如果需要將坐標系統恢復為缺省的twips坐標系,可以使用不含參數的scale方法,如語句:
picture1.scale
將圖形對象的坐標系統恢復為缺省,其左上角坐標為(0,0)。->