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