Skip to content

VIEW(图形)


为图形关键字设置新的物理坐标映射和裁剪区域

语法

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

绘制在新视口周围边框所用的颜色。

说明

视口(即裁剪区域)是图形屏幕上的一个矩形区域,在此区域以外不进行任何图形绘制,即只有在该区域内的图形绘制才会显示。在调用 ViewView Screen 之前,必须先用 Screen(图形)ScreenRes 创建图形屏幕。

第一种语句形式(View)将视口设置为覆盖整个屏幕,这也是新建图形屏幕的默认视口。

第二种和第三种语句形式(View 参数View Screen 参数)均可定义新视口。每个参数指定后才会产生相应效果:

  • 视口的角由 x1y1x2y2 参数指定。
  • fill_colorborder_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 Print
  • Screen(图形)
  • Window
  • Pmap

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系