📄 rfc192.txt
字号:
identification of picture parts when pointed at or "picked" or "hit" with graphical input devices such as light pen, electronic pen-tablet, Joy Stick, SRI mouse, or other supplying x, y information. 3) The computer representation of the picture must allow linking of picture parts with data about these parts appropriate to the application using the terminal. There should be an appropriate data management system for use with interactive application programming.Watson [Page 5]RFC 192 Some Factors which a Network Graphics 12 July 1971 4) There must be some way of communicating events taking place at the terminal in real-time, such as picking objects with the light pen, with the application program running in the timesharing system. 5) The user should be able to save and restore pictures from one console session to the next. 6) If possible, the user should be able to use the display as a stand-alone terminal or in conjunction with a teletype or other typewriter terminal. 7) The user should be able to do some graphic programming by drawing directly at the console. The choice of an appropriate data structure for picture representation simplifies the handling of requirements one to five. It is this data structure that we consider now in more detail.Picture-Related Structures If a picture displayed on the console had meaning only in the physical position of its lines and characters, the system would be little more effective than an easily erased piece of paper. To significantly enhance the capabilities of the system, we must be able to express relations between displayed entities. A line is much more than just a line when it represents a boundary or a part of some more complex unit. Such units in turn may be related in a similar way to higher level units. Furthermore, we may wish to create picture elements that may be used repeatedly so that a change in the one master copy will be reflected in every use of that copy. To illustrate the usefulness of this picture-subpicture relationship, we shall consider the three houses of Figure 1. While the two types of houses differ in appearance, it is obvious that they have picture elements that could be drawn by a designer of prefabricated houses and that the designer wished to incorporate a new standard window unit into all houses. The use of conventional pencil and paper techniques would require that he redraw or overlay each window on his diagram to reflect the changed component. If the window were, instead, drawn by the graphics system within a common subroutine, only that one master copy would have to be modified in order to change the appearance of every reference to that kind of window on the diagram.Watson [Page 6]RFC 192 Some Factors which a Network Graphics 12 July 1971Nodes and Branches To facilitate the discussion we will introduce the terms "node" and "branch". A node is a form of picture subroutine that may cause the display of lines and characters and may also call other nodes. The subroutine call is called a "branch". Nodes may also be thought of as representing PICTURES or SUBPICTURES and the branches to these nodes as uses or instances of these subpictures.Directed Graph Structure The nodes and branches form a directed graph. The branches contain positioning information indicating the beam location to be used by the called node. This location is relative to the position of the node in which the branch is made. This use of relative beam positions allows the user of the system to create subroutine structures that make multiple branches to common nodes. Branches may also set other display parameters such as intensity and character size. A subroutine calling structure appropriate to the requirements of our hypothetical designer is shown schematically in Figure 2. Nodes are shown as circles and branches are shown as connecting lines. The picture of the house is composed of wall unit and roof SUBPICTURES. The wall unit is in turn composed of subpictures.Node and Branch Display Parameters Branches may contain the setting of parameters which will be in effect when the called node is executed. The parameters which may be set are the beam position to be used (relative to the current beam position, i.e., a displacement value), intensity, character size, line type, visibility, (the display of vectors and characters may be suppressed), "hitablility" (whether or not vectors and text may be "viewed" by devices such as the light pen), and blinking. Coding within nodes may modify only the parameters controlling position, intensity, character size, and line type to be used by subsequent display coding or branches. It is not necessary that a node or branch specify every parameter. For those parameters other than position, the system allows a "don't care" option; the parameter setting in effect when the node or branch is executed will be retained and used in this case.Watson [Page 7]RFC 192 Some Factors which a Network Graphics 12 July 1971Identification of Graphic Entities with Graphic Input Devices Structural Hits A console operator or application program may modify, add, or delete branches to any of the nodes as well as add new nodes. To allow a console operator to manipulate any branch in such a structure, we have implemented a "structural hit identification" scheme. To illustrate the following discussion, we refer the reader to Figures 1 and 2. A viewing device, such as a light pen, can respond only to the individual vectors or characters displayed on the screen. At the time a vector is drawn under the viewing area of the light pen, an interrupt is generated and, if enabled, will be sent to the central computer. Even though the same node is used to display the eight windows in the diagram of Figure 1, we can tell which window and house is being pointed to by examining the sequence of branches taken to arrive at the window displayed at the time of interrupt. If the console user points to the right hand window of the middle house of Figure 1 (marked with an asterisk *) an examination of the subroutine return addresses in the push down stack would show that the current "window" node had been arrived at via the dotted line path shown on the network of Figure 2. There remains the question "Are we pointing at a window, at a wall, at the house, or at all three houses?" The location of this structural hit depends on how many branches are counted in examination of the return addresses before one stops to consider to which branch that return jump points. This is analogous to counting a fixed number of levels from the ends of the graph structure. This number of jumps is set using reserved keys on the keyboard, one incrementing and the other decrementing the limit. By manipulating these keys and pointing to various displayed objects with the light pen, it is possible to point to any branch in the network of subroutine calls. All information concerning the path in the node-branch network taken to arrive at any displayable coding is contained in a push down stack. Return jumps are stored in the stack by the subroutine calls to nodes. These jumps when executed will return the processor to the next instruction after the call. A greatly simplified version of the display coding used to generate the picture and tree of Figures 1 and 2 is shown in Figure 3. The labels a through d on the diagram represent theWatson [Page 8]RFC 192 Some Factors which a Network Graphics 12 July 1971 address of the subroutine calls which cause the display of the subpicture hit by the viewing device -- in this case the right hand window of the second house. The returns from the called subroutines are stored in the push down stack as jumps to the location following the calls. The routine RETURN would merely execute POP instructions which ultimately will cause the execution of a jump instruction previously placed in the stack by the calling branch, thus returning control to the calling routine. The stack is shown in the condition at the time of the hit on the right hand window of the middle house. Note that by counting 3 jumps upward (downward in the diagram) in the memory containing the stack, we will arrive at the jump pointing to a structural hit at (b) in Figure 3, the call to model 120. Console Operator Feedback The console operator must be informed of where he is pointing in the network of nodes and branches. This is accomplished by flashing all displayable coding below the structurally hit branch when a vector or character is viewed. This flashing is a doubling of the intensity at 2 to 8 cycles per second. In addition, a list of the names of all nodes and branches taken to arrive at the vector or character viewed is displayed in a corner of the screen. The name of the branch selected is intensified somewhat brighter than the other names. Generating an Attention After the operator has confirmed the correctness of his choice, he need only terminate the view in order to generate an attention on the desired branch. This is done by releasing the button on the light pen or lifting the pen from the Tablet. A button on the mouse will perform the same function. If the structural hit is not correct then the operator could move the viewing device to a new area. A termination of the view on a blank area of the screen will result in the generation of a "null" attention. This attention returns only position data; no structural data is generated. The significance of this attention is determined by the application program. The above discussion assumed a refreshed display and use of a light pen, but it greatly simplifies interactive graphics programming if the above concepts can be implemented no matter what type of display or graphical input device is being used. This in fact can be accomplished as discussed later.Watson [Page 9]RFC 192 Some Factors which a Network Graphics 12 July 1971THE GRAPHICS LANGUAGE For the purpose of discussion we assume that the graphics language statements are a set of subroutine calls, although a more sophisticated syntax could be imbedded in the host programming language. The statements required are: 1) Subroutine calls for creation and manipulation of the picture- subpicture data structure. 2) Subroutine calls to generate displayed pictures and picture parts such as lines and characters. 3) Subroutine calls to input information about events or "attentions" occurring in real time at the console. 4) Subroutine calls to manipulate picture parameters such as line type, (solid, dashed, dotted, etc.), brightness, character size, and so forth. 5) Subroutine calls to perform utility functions such as saving and restoring pictures from disk files, initiating the display and so forth.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -