VIEW(图形)
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgViewgraphics
- 最后更新: 2023-07-09
为图形关键字设置新的物理坐标映射和裁剪区域
语法
vb
View
View ( x1, y1 )-( x2, y2 ) [ [, fill_color ] [, border_color ] ]
View Screen ( x1, y1 )-( x2, y2 ) [ [, fill_color ] [, border_color ] ]参数
x1 as Integer, y1 as Integer
视口一个角相对于屏幕左上角的水平和垂直偏移量,以像素为单位。
x2 as Integer, y2 as Integer
视口对角相对于屏幕左上角的水平和垂直偏移量,以像素为单位。
fill_color as ULong
填充新视口所用的颜色。
border_color as ULong
绘制在新视口周围边框所用的颜色。
说明
视口(即裁剪区域)是图形屏幕上的一个矩形区域,在此区域以外不进行任何图形绘制,即只有在该区域内的图形绘制才会显示。在调用 View 或 View Screen 之前,必须先用 Screen(图形) 或 ScreenRes 创建图形屏幕。
第一种语句形式(View)将视口设置为覆盖整个屏幕,这也是新建图形屏幕的默认视口。
第二种和第三种语句形式(View 参数 和 View Screen 参数)均可定义新视口。每个参数指定后才会产生相应效果:
- 视口的角由
x1、y1、x2、y2参数指定。 fill_color和border_color均采用Color所接受的格式。- 第二种形式(
View 参数)修改图形屏幕的坐标映射,使图形绘制语句和过程所指定的坐标相对于视口左上角。 - 第三种形式(
View Screen 参数)修改图形屏幕的坐标映射,使图形绘制语句和过程所指定的坐标相对于屏幕左上角。 - 两种情况均不应用新的缩放系数(缩放功能请参见
Window)。
示例
start GeSHi
vb
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)end GeSHi
与 QB 的差异
- QBASIC 在后续调用
VIEW之后保留WINDOW坐标映射。 - FreeBASIC 目前的行为是在调用
VIEW或操作图像时保留WINDOW坐标,这意味着如果视口发生变化,坐标映射可能会经历缩放/平移。(如果未设置WINDOW,则不存在坐标映射,因此调用VIEW后也不会改变。)该行为在未来可能会发生变化,但可以通过每次更改VIEW时重新调用WINDOW来确保在视口坐标不一致的情况下行为一致。
另请参阅
View PrintScreen(图形)WindowPmap
返回 目录