设置当前视口的新视图坐标映射
语法
Window [ [Screen] ( x1 , y1 )-( x2 , y2 ) ]
参数
Screen
指定y坐标的可选参数从上到下增加。
( x1 , y1 )-( x2 , y2 )
与当前视口的相对角对应的新浮点值。如果省略,Window坐标映射将被删除。
说明
Window用于定义新的坐标系。
(x1 , y1 )和
(x2 , y2 )是要映射到当前视口的相对角的新坐标;传递给图形原语的所有将来的坐标都将受到这种新映射的影响。如果省略
Screen,则新坐标系将为笛卡尔坐标,即y坐标从底部到顶部增加。调用不带参数的
Window禁用坐标变换。
FreeBASIC的当前行为是跟踪
Window的角落,而不是特定的坐标映射。这意味着在调用
View之后坐标映射可以改变。
当处理图像缓冲区时,
Window角也被考虑,因此当
Window有效时,坐标映射将不同于图像。
当没有
Window有效时,没有效果的坐标映射,所以有效坐标系是常数,与图像缓冲区大小无关,或
View坐标(如果有的话)。
例子
Screen 13
''定义剪辑区域
View ( 10, 10 ) - ( 310, 150 ), 1, 15
''设置视图坐标
Window ( -1, -1 ) - ( 1, 1 )
''绘制X轴
Line (-1,0)-(1,0),7
Draw String ( 0.8, -0.1 ), "X"
''绘制Y轴
Line (0,-1)-(0,1),7
Draw String ( 0.1, 0.8 ), "Y"
Dim As Single x, y, s
''计算步长
s = 2 / PMap( 1, 0 )
''绘制功能
For x = -1 To 1 Step s
y = x ^ 3
PSet( x, y ), 14
Next x
''恢复到屏幕坐标
Window
''删除裁剪区域
View Screen
''画标题
Draw String ( 120, 160 ), "Y = X ^ 3"
Sleep
与QB差别
- QBASIC保留随后调用VIEW的坐标映射。
- FreeBASIC的当前行为是在调用VIEW之后保存WINDOW坐标,或者在图像处理时,这意味着坐标映射可能会进行缩放/翻译。(如果没有设置WINDOW,则没有坐标映射,因此在调用VIEW后不会更改)。行为可能会在将来发生更改,但可以通过重新定义视口坐标来确保一致的行为,当您更改VIEW时调用WINDOW。
参考