设置新的物理坐标映射和剪切区域
语法
View
View ( x1 , y1 )-( x2 , y2 ) [ [, fill_color ] [, border_color ] ]
View Screen ( x1 , y1 )-( x2 , y2 ) [ [, fill_color ] [, border_color ] ]
参数
说明
viewport 或剪辑区域是图形屏幕的矩形区域,其外不会进行绘图。也就是说,只有在这个区域内完成绘图才会显示出来。在
View或
View Screen之前,必须使用
Screen或
ScreenRes创建图形屏幕。
第一个语句将视口设置为包含整个屏幕,这是新图形屏幕的默认视口。
第二和第三个语句允许定义新的视口。视口的角由
x1 ,
y1 ,
x2 和
y2 参数指定。
fill_color 和
border_color 均采用
Color接受的格式。每个参数的指示效果仅在指定该参数时发生。
第二个语句修改图形屏幕的坐标映射,使得为绘图语句和过程指定的坐标相对于视口的左上角。
第三个语句修改图形屏幕的坐标映射,使得为绘图语句和过程指定的坐标相对于屏幕的左上角。
例子
Screen 12
Dim ip As Any Ptr
Dim As Integer x, y
'简单的精灵
ip = ImageCreate(64,64)
For y = 0 To 63
For x = 0 To 63
PSet ip, (x, y), (x\4) Xor (y\4)
Next x
Next y
'具有蓝色边框的视口
Line (215,135)-(425,345), 1, bf
View (220,140)-(420,340)
'在视口周围移动精灵
Do
x = 100*Sin(Timer*2.0)+50
y = 100*Sin(Timer*2.7)+50
ScreenSync
ScreenLock
'清晰的视口和图像
Cls 1
Put (x, y), ip, PSet
ScreenUnlock
Loop While Inkey = ""
ImageDestroy(ip)
与QB差别
- 后续拨打VIEW 后,QBASIC将保留WINDOW 坐标映射。
- FreeBASIC目前的行为是调用VIEW 之后或在图像处理时保留WINDOW 坐标,这意味着如果视口更改,坐标映射可能会进行缩放/翻译。(如果尚未设置WINDOW ,则不存在坐标映射,因此在调用VIEW 后不会更改。)行为可能会在将来更改,但一致只要更改VIEW ,可以通过重新调用WINDOW 来确保不合乎视口坐标的行为。
参考