跳转到内容

QBasic/图形

来自维基教科书,开放的书籍,开放的世界

QBasic 在图形方面能做什么

[编辑 | 编辑源代码]

QBasic 在图形方面并不十分强大,但可以创建许多优秀的程序。像 PSET、CIRCLE、LINE 等命令用于在 QBasic 中绘制图形。使用 QBasic 创建的图形程序的良好示例是 对称图标对称分形

SCREEN 将允许您设置它的使用方式。文本图形、两者以及您正在使用的表面的大小。SCREEN 0 .. 表示仅文本。SCREEN 12 .. 表示 64 X 480 X 16 色 & 文本。

PSET 命令允许程序员在屏幕上显示像素。在您输入命令之前,您必须确保 SCREEN 命令已在其中。请查看此示例

SCREEN 13
PSET (1,1), 43

此命令将在坐标 1, 1 处显示一个黄色像素。坐标是 X 和 Y 坐标,与任何其他数学情况一样。因此 PSET 命令必须具有以下布局才能正常工作

PSET ([X coordinate], [Y coordinate]), [Colour of Pixel]

请记住,X 坐标是屏幕上从左到右的坐标,Y 坐标是从上到下的坐标。

   LINE [[STEP](x1!,y1!)]-[STEP](x2!,y2!) [,[color%] [,[B | BF] [,style%]]]
   STEP          Specifies that coordinates are relative to the current
                   graphics cursor position.
   (x1!,y1!),    The screen coordinates of the start of the line and of
   (x2!,y2!)     the end of the line.
   color%        A color attribute that sets the color of the line or
                   rectangle. The available color attributes depend on your
                   graphics adapter and the screen mode set by the most
                   recent SCREEN statement.
   B             Draws a rectangle instead of a line.
   BF            Draws a filled box.
   style%        A 16-bit value whose bits set whether or not pixels are
                   drawn. Use to draw dashed or dotted lines.

这个简单的程序显示了一条线

  Screen 13 
  LINE (160,10)-(100,50),13 
Simple Line
简单线
CIRCLE (100, 100), 25, 4,0,3.14

这将在坐标处显示一个圆圈。函数的布局如下

CIRCLE ([X Coordinate], [Y Coordinate]), [Radius], [Colour Number],[Start Angle],[Finish Angle]

请记住在前面放一个 SCREEN 命令。

要使用 PAINT,必须声明一个 SCREEN 命令。该命令具有告诉 QBasic 开始位置的坐标。颜色编号指定要使用的颜色,而边框颜色告诉 PAINT 命令当它遇到该颜色的像素时停止绘制。在几乎所有情况下,您都需要使用边框颜色参数,因为如果没有它,PAINT 将覆盖整个屏幕。

PAINT ([X Coordinate],[Y Coordinate]), [Color Number], [Border Color]1,2,3,4,5,5

待办事项

使用 DATA 命令制作图像

[编辑 | 编辑源代码]

使用此命令的图形可以通过使用图形编辑器或手动使用 DATA 命令来制作。DATA 命令是将信息输入 QBasic 并被 READ 命令读取的一种方式。请记住,DATA 命令不能用于子程序或函数。请查看此示例

SCREEN 7
FOR y = 1 TO 10
FOR x = 1 TO 10
READ z
PSET (x, y), z
NEXT
NEXT
DATA 04, 04, 04, 04, 04, 04, 04, 04, 04, 04
DATA 04, 00, 00, 00, 00, 00, 00, 00, 00, 04
DATA 04, 00, 00, 00, 00, 00, 00, 00, 00, 04
DATA 04, 00, 00, 00, 00, 00, 00, 00, 00, 04
DATA 04, 00, 00, 00, 00, 00, 00, 00, 00, 04
DATA 04, 00, 00, 00, 00, 00, 00, 00, 00, 04
DATA 04, 00, 00, 00, 00, 00, 00, 00, 00, 04
DATA 04, 00, 00, 00, 00, 00, 00, 00, 00, 04
DATA 04, 00, 00, 00, 00, 00, 00, 00, 00, 04
DATA 04, 04, 04, 04, 04, 04, 04, 04, 04, 04

FOR 命令声明要读取的像素数量。在这个特定的程序中,有 10 x 10(100)个像素,所以我们放入

FOR x = 1 TO 10
FOR y = 1 TO 10

我们现在声明了 x 和 y 平面。如果您想要更小或更大的图片位图,可以更改这些值。READ 命令读取 DATA 命令并将收集的信息声明为 z。

READ z

PSET 读取平面和 DATA 读取并生成位图。

PSET (x, y), z

它的工作原理与本页上的第一个示例类似,只是它读取的像素不止一个

华夏公益教科书