Invisible and one-pixel wide scroll bars
Abstract
A graphical user interface uses scroll bars having a single pixel width and a much larger scroll button or thumb. Both the scroll bar and the scroll button may be controlled to have selective degrees of transparency so that they underlying image information may be seen under certain conditions. In one application, the scroll bar itself is invisible until a cursor approaches to within a specified proximity. The graphical user interface permit scroll bars to be displayed which follow an arbitrary path in either two or three dimensions.

Term
Term ended
Projected expiry passed 10 September 2018, 8 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
32 claims: 9 independent, 23 dependent
- 1Apparatus comprising:a. a computer having a display;andb. a graphical user interface running on said computer, said graphical user interface configured to display at least one scroll bar of a single pixel width.
- 19A method of controlling a view of information in a window comprising the steps of:a. placing a single pixel wide scroll bar along one edge of said window;b. placing a scroll button on said scroll bar, andc. controlling the view in the window based on the position of the scroll button on said scroll bar.
- 24A method of constraining an input/output device to follow a scroll bar, comprising the step of:a. applying resistance to movement away from the scroll bar using a tactile feedback input/output device.
- 25A method of using scroll bars in a three dimensional virtual world, comprising the steps of:a. referencing a scroll bar selectively to a coordinate system for the virtual world or to a coordinate system for a camera location.
- 26A computer system comprising:a. a network;b. at least one computer connected to said network, andc. a graphical user interface running on said computer, said graphical user interface configured to display at least one scroll bar of a single pixel width.
- 27A computer program product, comprising:a. a memory medium;andb. a computer program stored on said memory medium, said computer program comprising instructions for generating a single pixel scroll bar.
- 29A computer program product, comprising:a. a memory medium;andb. a computer program stored on said memory medium, said computer program comprising instructions for applying resistance to movement away from the scroll bar using a tactile feedback input/output device.
- 31A computer program product, comprising:a. a memory medium;andb. a computer program stored on said memory medium, said computer program comprising instructions for referencing a scroll bar selectively to a coordinate system for the virtual world or to a coordinate system for a camera location.
- 32A computer (100) operable to produce a display with a scroll bar (200) characterised in that the scroll bar is of a width of less than an integer number n pixels where n is between 1 and 10.
Independent claims9
49 paragraphs in 5 sections, as filed
BACKGROUND OF THE INVENTION
Field of the Invention
The invention relates to computer systems and software and, more particularly, to a graphical user interface having scroll bars which are a single pixel wide and which, under certain conditions, may be invisible.
Description of Related Art
Scroll bars are known in the art which are rendered as a rather wide stripe running along the border of the scrollable area. More specifically, scroll bars are typically rendered as a vertical stripe when controlling scrolling in a vertical direction and are rendered as a horizontal stripe when controlling scrolling in a horizontal direction. These are generally reasonably unobstrusive when there is no more than a single scroll bar for each direction on a display page.
Scroll bars have a scroll button (sometimes called a scroll "thumb" or "elevator") which the user grabs in order to move the view of the display controlled by the scroll bar. When the user selects a scroll button, and drags it in a direction, the scrolling displayed within the window controlled by the scroll bar is changed in accordance with a relative position of the scroll button.
The Problems
Using traditional approaches, there is a limit as to how narrow a scroll bar can be since the user needs to be able to position the cursor over the scroll button in order to move it. In the traditional approaches, the scroll button is confined to the channel defined by the scroll bar. Therefore, as the scroll bar gets narrower, finer and finer control of the movement of the cursor is required in order to successfully grab a progressively narrower scroll button in order to move it.
As graphical user interfaces become more complex, traditional scroll bars tend to dominate too much of the visual content of the screen. This is particularly true when viewing pages on the World Wide Web and other designs which multiple scrollable areas are intermixed with other material. It would be preferable if users could concentrate on the content or on the design of the page and not have the user interface machinery take up as much screen space and visual attention as they do.
SUMMARY OF THE INVENTION
In accordance with the invention, a one-pixel wide scroll bar is utilized. Sliding along this scroll bar is a much larger semi-transparent scroll button. Thus, the scroll button is freed from the constraints of the scroll bar channel.
The scroll button is drawn using a transparency effect, making it possible for the user to see any data that may be in the part of the screen that is overlaid by the scroll button. In fact, in some embodiments, the transparency with which the scroll button is displayed is a function of how close the cursor is to the scroll button.
The same type of transparency effect can be applied to the scroll bar itself. That is, when the cursor is relatively far from the scroll bar, the scroll bar may be completely invisible. However, as the cursor approaches the scroll bar, the scroll bar and/or the scroll button become progressively more visible, that is, they become more nearly opaque.
The scroll bars and buttons of the invention can be utilized with tactile feedback devices in order to provide a tactile indication, as well as a visual one, that the cursor is crossing over an area in which the scroll bar or a scroll button exists.
The scroll bar techniques disclosed herein are utilizable for controlling functions or objects in a three-dimensional virtual world and can be extended to controlling functions in an N-dimensional space. In an N-dimensional space, where N is greater than 2, the path followed by the scroll bar can be arbitrary, that is, the scroll bar is not constrained to follow a linear path. This provides great utility when moving objects or adjusting controls in a three-dimensional space.
The scroll bar techniques disclosed herein can be utilized with an eyetracker for providing control of the scroll bars as well.
The foregoing and other features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
The objects, features and advantages of the present invention will become apparent from the following descriptions, in which: <ul id="ul0001" list-style="none" compact="compact"><li><b>Figure 1A</b> is an illustration of a computer of a type suitable for carrying out the invention.</li><li><b>Figure 1B</b> is a block diagram of an exemplary bus architecture suitable for carrying out the invention.</li><li><b>Figure 1C</b> is an illustration of an exemplary memory medium for carrying program information and data for use in carrying out the invention.</li><li><b>Figure 1D</b> is a block diagram of an exemplary network suitable for carrying program and data information useful for carrying out the invention.</li><li><b>Figures 2A, 2B and 2C</b> illustrate exemplary degrees of transparency with which a scroll button or thumb is displayed depending on cursor location or scroll button selection in accordance with one embodiment of the invention.</li><li><b>Figure 3</b> is a flow chart of an exemplary process by which the transparency of a displayed scroll button may be controlled in accordance with one embodiment of the invention.</li><li><b>Figures 4A, 4B and 4C</b> illustrate exemplary uses of an invisible scroll bar and the conditions under which it becomes partially or completely opaque in accordance with one embodiment of the invention.</li><li><b>Figure 5</b> is a flow chart of an exemplary process by which the transparency/opacity of a scroll bar may be controlled in accordance with one embodiment of the invention.</li><li><b>Figure 6</b> is a flow chart of a high level design process for a scroll button in accordance with one embodiment of the invention.</li><li><b>Figure 7A</b> is an illustration of one exemplary way in which image pixels can be combined with overlying pixels of a scroll bar to form a displayed image in accordance with one embodiment of the invention.</li><li><b>Figure 7B</b> illustrates an alternative way of determining a resulting pixel when an image pixel is combined with a 70% transparent (30% opaque) scroll bar pixel.</li><li><b>Figure 7C</b> illustrates a table for setting transparency levels for the various conditions described in conjunction with the earlier figures.</li><li><b>Figure 8</b> illustrates interaction between an input/output device equipped with tactile feedback and the computer over a tactile feedback device interface.</li><li><b>Figures 9A and 9B</b> are a flow chart of an exemplary process for controlling tactile feedback to indicate the presence of a scroll bar or a scroll button when a cursor passes over and to increase resistance when the scroll button is selected and attempts to move away from the path of the scroll bar.</li><li><b>Figure 10</b> is an illustration of a scroll bar which follows an arbitrary path in a three-dimensional virtual world and relevant coordinate systems useful in representation when viewing a scroll bar and objects in that world.</li><li><b>Figure 11</b> illustrates a scroll bar attached to a camera coordinate system and a scroll bar attached to the virtual world coordinate system and views displayed when the camera view point rotates.</li><li><b>Figure 12</b> is a flow chart of a process for moving a three-dimensional scroll marble along an arbitrary three-dimensional scroll path.</li><li><b>Figure 13</b> is a flow chart of a process for using an eyetracker to select a scroll bar and/or scroll button and for dragging the scroll button along the scroll bar.</li><li><b>Figure 14</b> illustrates use of a single scroll bar to handle a linear list spread across multiple columns.</li></ul>
NOTATIONS AND NOMENCLATURE
The detailed descriptions which follow may be presented in terms of program procedures executed on a computer or network of computers. These procedural descriptions and representations are the means used by those skilled in the art to most effectively convey the substance of their work to others skilled in the art.
A procedure is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. These steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It proves convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be noted, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.
Further, the manipulations performed are often referred to in terms, such as adding or comparing, which are commonly associated with mental operations performed by a human operator. No such capability of a human operator is necessary, or desirable in most cases, in any of the operations described herein which form part of the present invention; the operations are machine operations. Useful machines for performing the operation of the present invention include general purpose digital computers or similar devices.
The present invention also relates to apparatus for performing these operations. This apparatus may be specially constructed for the required purpose or it may comprise a general purpose computer as selectively activated or reconfigured by a computer program stored in the computer. The procedures presented herein are not inherently related to a particular computer or other apparatus. Various general purpose machines may be used with programs written in accordance with the teachings herein, or it may prove more convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description given.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
<b>Figure 1A</b> illustrates a computer of a type suitable for carrying out the invention. Viewed externally in <b>Figure 1A</b>, a computer system has a central processing unit <b>100</b> having disk drives <b>110A</b> and <b>110B.</b> Disk drive indications <b>110A</b> and <b>110B</b> are merely symbolic of a number of disk drives which might be accommodated by the computer system. Typically, these would include a floppy disk drive such as <b>110A</b>, a hard disk drive (not shown externally) and a CD ROM drive indicated by slot <b>110B.</b> The number and type of drives varies, typically, with different computer configurations. The computer has the display <b>120</b> upon which information is displayed. A keyboard <b>130</b> and a mouse <b>140</b> are typically also available as input devices. Preferably, the computer illustrated in <b>Figure 1A</b> is a SPARC workstation from Sun Microsystems, Inc.
<b>Figure 1B</b> illustrates a block diagram of the internal hardware of the computer of <b>Figure 1A</b>. A bus <b>150</b> serves as the main information highway interconnecting the other components of the computer. CPU <b>155</b> is the central processing unit of the system, performing calculations and logic operations required to execute programs. Read only memory <b>(160)</b> and random access memory <b>(165)</b> constitute the main memory of the computer. Disk controller <b>170</b> interfaces one or more disk drives to the system bus <b>150</b>. These disk drives may be floppy disk drives, such as <b>173</b>, internal or external hard drives, such as <b>172</b>, or CD ROM or DVD (Digital Video Disks) drives such as <b>171</b>. A display interface <b>125</b> interfaces a display <b>120</b> and permits information from the bus to be viewed on the display. Communications with external devices can occur over communications port <b>175</b>. An eyetracker <b>178</b> is interfaced with bus <b>150</b> over eyetracker interface <b>177</b>. Similarly, a tactile feedback input/output device <b>180</b> is interfaced to bus <b>150</b> over a tactile feedback interface <b>179</b>.
<b>Figure 1C</b> illustrates an exemplary memory medium which can be used with drives such as <b>173</b> in <b>Figure 1B</b> or <b>110A</b> in <b>Figure 1A</b>. Typically, memory media such as a floppy disk, or a CD ROM, or a Digital Video Disk will contain the program information for controlling the computer to enable the computer to perform its functions in accordance with the invention. Program and data information from such media is transmitted, in accordance with the invention, over a transmission link in the form of a carrier wave.
<b>Figure 1D</b> illustrates the use of computers of the type shown in <b>Figures 1A</b> and <b>1B</b> in a network environment. Such computers can be used as user computers <b>(194, 189)</b> or as servers <b>(187)</b>, sometimes with nominal differences of configuration. A user computer may connect to the network <b>185</b> either directly <b>(189)</b> or via a network service provider, such as an internet service provider <b>190</b>. Program and data information used in carrying out the invention can be transmitted as a carrier wave over the network(s).
<b>Figures 2A, 2B and 2C</b> illustrate exemplary degrees of transparency with which a scroll button or thumb is displayed, depending on cursor location or scroll button selection, in accordance with one embodiment of the invention.
<b>Figure 2A</b> shows a scroll button <b>210</b> which is mostly transparent. That is, any pixel values from an image picture plane over which the scroll bar <b>(200)</b> and scroll button are overlaid get most of the intensity value and color values whereas the scroll button, in this illustration, gets a small percentage, rendering it visible, but permitting the underlying image information to be seen. The scroll button, as shown in <b>Figure 2A</b> has a radius R1. The dash line existing at radius R2 from the center of the scroll button represents a second distance from the scroll button which is utilized for controlling the transparency/opacity of the scroll button. When the cursor <b>220</b>, is not near the scroll button (i.e. is outside the threshold distance R2 from the scroll button), the scroll button remains mostly transparent. However, when the cursor <b>220</b> moves near (i.e. within the distance R2 from the scroll button's center) or over the scroll button (i.e. within the radius R1 of the scroll button) the scroll button becomes more nearly opaque and contributes more to the color and intensity values at each pixel, is discussed more hereinafter. This situation is shown in <b>Figure 2B.</b>
As shown in <b>Figure 2C</b>, when the scroll button is selected by, for example, depressing a mouse button while a cursor <b>220</b> is over the button <b>210</b>, the scroll button becomes mostly or totally opaque.
<b>Figure 3</b> is a flow chart of an exemplary process by which the transparency of the display of a scroll button may be controlled in accordance with one embodiment of the invention. The position of a cursor is periodically checked and, as shown in step <b>300</b>, if the current cursor location is within R1 of the scroll button location <b>(300-Y)</b>, a check is made <b>(340)</b> to see if the select button from the I/O device is depressed. If it is not <b>(340-N)</b>, the scroll button is displayed with a transparency level 2 <b>(350)</b>. If the select button is depressed <b>(340-Y)</b>, the scroll button is displayed with a transparency level 3 <b>(360)</b>. If the cursor location is not within R1 of the scroll button location <b>(300-N)</b>, a check is made to determine if the current cursor location is within R2 of the scroll button location <b>(310)</b>. If it is, <b>(310-Y)</b>, the scroll button is displayed with transparency level 1 <b>(320)</b>. If it not <b>(310-N)</b>, then the scroll button is displayed with the default transparency level <b>(330)</b>. After an optional wait interval <b>(370)</b> after display of the scroll button with a particular transparency, the cursor location is again checked to determine its proximity to the scroll buttons and the process repeats.
<b>Figures 4A, 4B and 4C</b> illustrate exemplary use of an invisible scroll bar and the conditions under which it becomes partially or completely opaque in accordance with one embodiment of the invention. The scroll button <b>410</b> and cursor <b>420</b> are positioned substantially as the corresponding elements shown in <b>Figure 2A</b>. However, the scroll bar <b>400</b>, as indicated by the dashed-line, is invisible.
As shown in <b>Figure 4B</b>, when the cursor <b>420</b> approaches within distance d2 on either side of the scroll bar <b>400</b>, the scroll bar changes from invisible to mostly transparent. As shown in <b>Figure 4C</b>, when the cursor <b>420</b> comes within distance d1 on either side of scroll bar, the scroll bar becomes more nearly opaque.
Note that the transparency/opacity of the scroll button can be tied with or independent of the transparency/opacity of the scroll bar. It is preferred, when the scroll button is selected, that the scroll bar become concurrently opaque, even if the default display value for the scroll bar is invisible (completely transparent).
<b>Figure 5</b> is a flow chart of an exemplary process by which the transparency/opacity of a scroll bar may be controlled in accordance with one embodiment of the invention.
The location of the cursor is periodically checked and if the current cursor location is within R1 of the scroll button <b>(500-Y)</b>, the scroll line will be displayed with transparency level 3' <b>(550)</b>. Otherwise <b>(500-N)</b>, a check is made to see if the current cursor location is within d1 of the scroll line <b>(510)</b>. If it is <b>(510-Y)</b>, the scroll line is displayed with transparency level 2' <b>(560)</b>. If it is not <b>(510-N),</b> a check is made to see if the current cursor location is within d2 of the scroll line <b>(520)</b>. If it is <b>(520-Y)</b>, the scroll line will be displayed with transparency level 1' <b>(540)</b>. Otherwise <b>(520-N)</b>, the scroll line will not be displayed at all <b>(530)</b> or in other words, the scroll line will be displayed with complete transparency. Once the scroll line is displayed with the selected transparency, after an optional wait <b>(570)</b>, the location of the cursor is checked again and the process repeats.
<b>Figure 6</b> is a flow chart of a high level design process for a scroll button in accordance with one embodiment of the invention. At step <b>600</b>, the shape for the scroll button is selected. The preferred appearance for a two-dimensional display is a portion of a 3-D sphere, giving the impression of a spherical surface which rises from the plane of the display screen. In a three-dimensional representation, a full three-dimensional sphere would be the preferred representation. This will sometimes be called a scroll marble. It is of course known how to create a two-dimensional projection of a three-dimensional scene.
In step <b>610</b>, the color for the selected shape is determined. There is no particular preference for color other than it should contrast with the background. In one implementation, the color red was used with good effect. In step <b>620</b>, one or more highlights are placed and an optional shadow is represented in accordance with the lighting model <b>(620)</b>. Graphical user interfaces typically have design standards which include a lighting model. Typically, the light source originates off the screen in the upper left hand corner and is located between the screen and the user. The placement of the highlights and the shadow for the scroll button or scroll marble would then be established based on the position of the light source and the intended three-dimensional effect to be achieved with the scroll button.
<b>Figure 7A</b> is an illustration of one exemplary way in which image pixels are combined with scroll bar overlay pixels to form a displayed image in accordance with one embodiment of the invention. In the example shown in <b>Figure 7A</b>, a four value representation of a color pixel is shown at <b>700</b>. In this representation, red intensity R1, green intensity G1, and blue intensity B1 represent the color values for the pixel. The intensity level I1 represents the overall intensity of the pixel whereas the R1, G1, B1 triplet represents the color value. The scroll bar is represented by a plurality of pixels, one pixel of which is illustrated at <b>710</b>. Like the image pixel <b>700</b>, the scroll bar pixel <b>710</b> has color components R2, G2 and B2 and intensity component I2. In a typical implementation, image pixels would come from an image plane and overlay pixels, such as those used to create a scroll bar and other functional representations would be found in one or more overlay planes. The value of the actual picture displayed on a pixel from the image plane is combined with a corresponding pixel from an overlay plane, as illustrated in item <b>720</b>. This is a fairly simplistic exemplary combination algorithm in which the red, green, blue and intensity pixels from the image plane are combined with the corresponding pixel from the overlay plane and the resulting sum limited so it does not exceed the maximum value permitted for the color component or intensity value of the pixel. Although the color representation illustrated here uses red, green and blue color values, it is also possible to combine pixels utilizing the hue, saturation and intensity (Y,U,V) notation for color representation.
<b>Figure 7B</b> illustrates an alternative way of determining a resulting pixel when an image pixel is combined with (in this example) a 70% transparent (30% opaque) scroll bar pixel. For a region in which 70% transparency is desired, the values of image pixels and overlay pixels are combined as illustrated at <b>730</b>. Since most of the pixel information should originate from the underlying image pixel, it is weighted more heavily (0.7) than the overlay pixel. The scroll bar overlay pixel is designed to be relatively transparent and to defer to the color and intensity values of the image pixel. Accordingly, it is weighted only 30%. Thus, considering the red component, .7R1 +.3R2 will be the color value for the red component of the resultant pixel, provided that sum does not exceed the red component maximum value. Similar calculations are made for each of the blue, green and intensity levels of the color representation.
<b>Figure 7C</b> illustrates a table for setting transparency levels for the various conditions described above. A look-up table <b>740</b> is one way in which the various levels of transparency may be established for a system implementing the various aspects of the invention. Transparency levels are set in column <b>741</b>. They include a default level, a level 1, a level 2 and a level 3 transparency. The percentage of the resultant pixel that should originate with the image plane is given for the various transparency levels in column <b>742</b>. The corresponding value for the overlay pixels is given in column <b>743</b>. Note that in this particular implementation the transparency levels default, 1, 2 and 3 are assumed to be equal to the default prime 1', 2' and 3' values set forth above. Thus, although it is possible to set different transparency levels for the scroll bar and the scroll button, it is preferred that they share transparency levels of the same value as shown in table <b>740</b>.
<b>Figure 8</b> illustrates interaction between an input/output device equipped with tactile feedback and the computer over a tactile feedback device interface. A tactile feedback device interface <b>800</b> receives the usual positioning information from the input/output device <b>810</b>. However, the processor shown in <b>Figure 1B</b> provides control of resistance and movement based on the positioning of the cursor. Tactile feedback devices and their interfacing to computers is well known in the art.
<b>Figures 9A and 9B</b> are a flow chart of an exemplary process for controlling tactile feedback to indicate the presence of a scroll bar or a scroll button when a cursor passes over and to increase resistance when the scroll button moves away from the path of the scroll bar. The tactile operation varies depending upon whether the scroll button is selected. If it is not <b>(900-N)</b>, the portion of the process described in <b>Figure 9B</b> is followed <b>(905)</b>. If the scroll button is selected <b>(900-Y)</b>, for example, by placing the cursor over it and pressing the left mouse button, a determination is made of the direction in which the I/O device is moving. This can be done, for example, by determining the XY values of two points at which the cursor is located at different instance of times and calculating a vector <maths id="math0001" num=""><math display="inline"><mrow><mover accent="true"><mrow><mtext>V</mtext></mrow><mo>¯</mo></mover></mrow></math><img file="EP0903662A2_D0001.tif" /></maths><sub>m</sub>. Similarly, a unit vector <maths id="math0002" num=""><math display="inline"><mrow><mover accent="true"><mrow><mtext>V</mtext></mrow><mo>¯</mo></mover></mrow></math><img file="EP0903662A2_D0002.tif" /></maths><sub>t</sub> is utilized to represent the direction in which the cursor should be moving to parallel the scroll bar at that location <b>(915)</b>. Resistance is applied to the input/output device movement <b>(920)</b> as a function of <maths id="math0003" num=""><math display="inline"><mrow><mover accent="true"><mrow><mtext>V</mtext></mrow><mo>¯</mo></mover></mrow></math><img file="EP0903662A2_D0003.tif" /></maths><sub>m</sub>.<maths id="math0004" num=""><math display="inline"><mrow><mover accent="true"><mrow><mtext>V</mtext></mrow><mo>¯</mo></mover></mrow></math><img file="EP0903662A2_D0004.tif" /></maths><sub>t</sub> (dot product) up to a maximum resistance. This is a vector dot product and the value of the resistance is applied so as to impede the motion of the input/output device away from the scroll bar path.
In <b>Figure 9B</b>, if the scroll button is not selected <b>(925)</b>, the cursor distance from the scroll bar is determined <b>(930)</b>. If the distance is less than d2 <b>(935-Y)</b>, a vertical displacement to the I/O device may be applied as a function of one divided by the distance up to a maximum value <b>(940)</b>. If the cursor is outside a distance d2 from the scroll bar, or after the vertical displacement has been applied, the process reverts back to before block <b>930</b>. The purpose of this is to permit the user to feel a bump or a resistance to the movement of the scroll bar when a scroll bar is crossed over. This should be applied, preferably when the scroll bar is visible to make it apparent why resistance was encountered as a cursor was attempted to be moved.
<b>Figure 10</b> is an illustration of a scroll bar which follows an arbitrary path in a three dimensional virtual world and relevant coordinate systems useful for representation and viewing the scroll bar and objects in that world. In a three-dimensional virtual world, it is common to place a light source <b>1050</b> as indicated and a camera at a position represented by the origin of coordinate system <b>1030</b>. The virtual world coordinate system is shown at <b>1020</b>. Note that the camera has six degrees of freedom with respect to the virtual world coordinate system, namely X, Y, Z, roll, pitch and yaw. When the camera location changes, to a different location, the virtual world scene is transformed to reflect the view from the new location. Thus, a generalized coordinate system transform can be utilized to move the camera in the virtual world space. Similar transformations can be utilized to move the light source. These transformations are well known in the art. The three-dimensional scene depicted in <b>Figure 10</b> is that of a railroad track which runs from a foreground location up a hill to the left toward a background location. The railroad tracks <b>1000</b> are paralleled by a scroll bar path <b>1060</b> which parallels the arbitrary path of the railroad tracks. A scroll sphere or marble <b>1010</b> is shown at point X, Y and Z in the virtual world coordinate system. When the cursor is utilized to select the scroll marble centered at coordinate system <b>1010</b>, it can be dragged along the scroll path <b>1060</b> using the techniques described above, to place the scroll marble at location X', Y' and Z' shown at coordinate system <b>1010'</b>. The scroll marble described above can be utilized, for example, to position the location of an object, such as a train engine, at a location along the tracks <b>1000</b> as desired. For example, this can be utilized to position the train engine at a particular point in order to start a simulation animation of the train moving through the virtual world.
It is particular important to notice that the scroll marble <b>1070</b> can be referenced to either the virtual world coordinate system <b>1020</b> or to the camera location coordinate system <b>1030</b>. The difference between the two attachments or references will be discussed hereinafter.
<b>Figure 11</b> illustrates a scroll bar <b>1110</b> attached to a camera coordinate system and a scroll bar <b>1070</b> attached to a virtual world coordinate system in views displaced by camera rotation. The area bounded by the solid box <b>1100</b> represents the view shown in <b>Figure 10</b> of the railroad tracks <b>1000</b> and scrolling marble <b>1070</b>. Scrolling marble <b>1070</b> is attached (or referenced to) to the coordinate system of the virtual world. Thus, when the scrolling marble is dragged along the path <b>1060</b> which parallels the railroad tracks <b>1000</b>, its coordinates will change with respect to the virtual world coordinate system alone. In the lower right-hand corner of box <b>1100</b>, is an illumination scroll bar having an invisible scroll bar with a partially transparent scroll button <b>1110.</b> This particular scroll bar and scroll button are referenced to the camera coordinate system and not the virtual world coordinate system. Thus, when the camera is rotated to the left, the rightmost extent or edge of the view will move from location <b>1100R</b> to <b>1100R</b>' and the leftmost edge of the view will move from <b>1100L</b> to <b>1100L</b>'. Thus, the vertical dashed lines in <b>Figure 11</b> represent the edges of the camera view after rotation. Note that by virtue of camera rotation, scroll marble <b>1070,</b> affixed to the virtual world coordinate system is no longer in the field of view. However, scroll button <b>1110,</b> attached to the camera coordinate system moves from its location shown before the move to maintain the same position relative to the right edge of the camera view after the move. Thus, scroll button <b>1110</b> is never out of the camera view, because it is affixed or referenced to the camera coordinate system. However, scroll marble <b>1070</b> affixed or referenced to the virtual world coordinate system does move out of the camera view when the camera rotates.
<b>Figure 12</b> is a flow chart of a process for moving a three-dimensional scroll marble along an arbitrary three-dimensional scroll path. A scroll path is defined as a function in a three (or N) dimensional space (<b>1200</b>). The representation of the function in three space can be done via table, by definition as a continuous function or as a piecewise continuous function. A scrolling marble is placed at a point on the path <b>(1210) .</b> The only restriction is that the center of the scrolling marble should satisfy the path function as defined above. When a three-dimensional cursor is placed on or in the marble space and selected (<b>1220</b>), it may be dragged along the scroll bar path in three-dimensions, preferably constraining the cursor or the marble or both to follow the scroll bar path (<b>1230</b>). One can determine if the cursor is on or in the marble space by determining if the cursor position X<sub>c</sub>, Y<sub>c</sub>, Z<sub>c</sub> is within the marble radius of the center of the marble, X<sub>m</sub>, Y<sub>m</sub>, Z<sub>m</sub>. Constraining the cursor or the marble or both to move along the path is done by ensuring that only points which satisfy the path function are permitted for positioning of the cursor or the marble's center. Once the marble has been dragged to the desired location (<b>1240</b>), the select button on the I/O device is released and the marble remains until moved again. Although the illustration has been given with respect to three space, the techniques can be extended to N-dimensional spaces. However, because of the obvious constraints on viewing and on the human mind when dealing in spaces beyond three dimensions, one would expect that the variables would be visualized or considered three at a time if the dimensionality of the space were greater than 3.
<b>Figure 13</b> is a flow chart of a process for using an eyetracker to select a scroll bar and/or scroll button and for dragging of the scroll button along the scroll bar. An eyetracker determines the location L<sub>1</sub> of a user's gaze at point X<sub>u</sub>, Y<sub>u</sub>, Z<sub>u</sub> (or X<sub>u</sub>, Y<sub>u</sub> in two dimensional space) (<b>1300</b>). The eyetracker necessarily determines location with reference to the tracker's coordinate system. The location at X<sub>u</sub>, Y<sub>u</sub>, Z<sub>u</sub> and the tracker's coordinate system is then mapped to the virtual world coordinate system point X<sub>uvm</sub>, Y<sub>uvw</sub>, Z<sub>uvw</sub> (<b>1310</b>). If the users gaze is directed at a point lying on or near a scrolling marble for a duration t<sub>1</sub> > t<sub>a</sub> (<b>1320-Y</b>), the scroll bar for the marble is activated -- that is, made visible or made more visible for a duration T<sub>d</sub> (<b>1330</b>). If t<sub>1</sub> is greater than value T<sub>b</sub> (<b>1340-Y</b>) (t<sub>b</sub> > t<sub>a</sub>), the marble is indicated as selected in one or more customary fashions (<b>1350</b>). These may include causing the cursor to flash, changing color or inverting the black and white pixels. Other ways are known for indicating such a selection. Once the marble has been selected, a check is made to see if the user's gaze moves to a location L<sub>2</sub> having values X<sub>u</sub>', Y<sub>u</sub>' and Z<sub>u</sub>' for a duration T<sub>1</sub> > T<sub>c</sub> where T<sub>c</sub> is the third duration (<b>1360</b>). If it does (<b>1360-Y</b>), the scrolling marble is physically moved to location L<sub>2</sub> and the process returns to before step <b>1330</b>. If either <b>1320-N, 1340-N</b> or <b>1360-N</b> is true, the process reverts to the beginning and repeats. Note that once a scroll bar for the marble has been activated, it is the time out of the duration T<sub>d</sub> which clears the scroll bar unless other conditions exist. It may be desirable to use an affirmative scroll bar turnoff under certain conditions, such as gazing at a scroll bar turnoff button.
<b>Figure 14</b> illustrates use of a single scroll bar used to handle a linear list spread across multiple columns. In <b>Figure 14</b>, a linear list consisting of twenty-one elements designated elements 1-21 are arranged in a three column format. A piecewise continuous scroll bar comprising linear portions <b>1400A, 1400B, 1400C, 1400D and 1400E</b> represent a single continuous scroll bar. The scroll button <b>1410</b> is constrained to exist only on scroll bar sections <b>1400A, 1400C</b> and <b>1400E</b>. If a user attempts to drag the scroll button 1410 to a location between those piecewise segments of the scroll bar function, the scrolling button <b>1410</b> will not be permitted to stop on segments <b>1400B</b> or <b>1400D</b>. Rather, depending upon the direction from which the scroll button <b>1410</b> is being dragged, the scroll button will appear at the beginning of the next segment <b>1400A</b>, <b>1400C</b> or <b>1400E</b>. In this way, a single scroll button may be used to select from a linear list of information which would otherwise require three scroll bars and buttons.
There have thus been described scrolling techniques for graphical user interfaces which overcome the problems of the prior art and which provide great functionality and ease of use in a graphical user interface.
Although the present invention has been described and illustrated in detail, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, the spirit and scope of the present invention being limited only by the terms of the appended claims and their equivalents.
Contents5
21 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US9864498B2 | Cited by | United States of America | Applicant |
| US8689132B2 | Cited by | United States of America | Applicant |
| US10372796B2 | Cited by | United States of America | Applicant |
| CN114041877A | Cited by | China | Search report |
| EP1942403A2 | Cited by | European Patent Office (EPO) | Applicant |
| US10317995B2 | Cited by | United States of America | Applicant |
| US10534526B2 | Cited by | United States of America | Applicant |
| US10831987B2 | Cited by | United States of America | Applicant |
| US9619020B2 | Cited by | United States of America | Applicant |
| WO2011130849A1 | Cited by | World Intellectual Property Organization (WIPO) | Applicant |
| US10558262B2 | Cited by | United States of America | Applicant |
| US10447960B2 | Cited by | United States of America | Applicant |
| US10860198B2 | Cited by | United States of America | Applicant |
| WO2015148276A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10545574B2 | Cited by | United States of America | Applicant |
| US9952883B2 | Cited by | United States of America | Applicant |
| US11029838B2 | Cited by | United States of America | Applicant |
| US10283082B1 | Cited by | United States of America | Applicant |
| US11467722B2 | Cited by | United States of America | Applicant |
| EP1942403A3 | Cited by | European Patent Office (EPO) | Search report |
| WO2008086319A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US9568997B2 | Cited by | United States of America | Applicant |
| US8223134B1 | Cited by | United States of America | Applicant |
| US10839141B2 | Cited by | United States of America | Applicant |
| US8130205B2 | Cited by | United States of America | Applicant |
| EP2561428A4 | Cited by | European Patent Office (EPO) | Search report |
| US10552520B2 | Cited by | United States of America | Applicant |
| US10810359B2 | Cited by | United States of America | Applicant |
| EP2561428A1 | Cited by | European Patent Office (EPO) | Search report |
| EP0159400A1 | Cites | European Patent Office (EPO) | Search report |
| EP0203324A2 | Cites | European Patent Office (EPO) | Search report |
| US5039937A | Cites | United States of America | Search report |
| US5790108A | Cites | United States of America | Search report |
| WO9721160A2 | Cites | World Intellectual Property Organization (WIPO) | Search report |
| WO9808159A2 | Cites | World Intellectual Property Organization (WIPO) | Search report |
5 priority claims, no other members on record
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 932239 | United States of America | – | |
| 93223997 | United States of America | A | |
| 93223997 | United States of America | A | |
| 932239 | – | – | – |
| US19970932239 | – | – | – |
11 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Application deemed to be withdrawnWithdrawn18D | 18D | |
| Information on the status of an ep patent application or granted ep patentGrantedSTAA | STAA | |
| First examination report17Q | 17Q | |
| Payment of designation feesAKX | AKX | |
| Request for examination filed17P | 17P | |
| Designated contracting states:AK | AK | |
| Request for extension of the european patent to:AX | AX | |
| Search report despatchedPUAL | PUAL | |
| Designated contracting states:AK | AK | |
| Request for extension of the european patent to:AX | AX | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phasePUAI | PUAI |
Numbers
- Publication
- 0903662
- Publication, DOCDB
- 0903662
- Publication, EPODOC
- EP0903662
- Application
- 98307338
- Application, DOCDB
- 98307338
- Application, EPODOC
- EP19980307338
Titles3
- German
- Unsichtbarer Rollbalken mit einer Breite von einem Bildelement
- English
- Invisible and one-pixel wide scroll bars
- French
- Barre de défilement invisible avec une largeur d'un pixel
Classification
- CPC, 7
- G06F3/016
- G06F3/013
- G06F3/04815
- G06F3/04855
- G06F2203/014
- G06F2203/04804
- G09G2340/10
- IPC, 5
- G09G5 34
- G06F3 00
- G06F3 01
- G06F3 033
- G06F3 0485
Designated states25
- Contracting states, 19
- Austria
- Belgium
- Switzerland
- Cyprus
- Germany
- Denmark
- Spain
- Finland
- France
- United Kingdom
- Greece
- Ireland
- Italy
- Liechtenstein
- Luxembourg
- Monaco
- Netherlands (Kingdom of the)
- Portugal
- Sweden
- Extension states, 6
- Albania
- Lithuania
- Latvia
- North Macedonia
- Romania
- Slovenia