CA2309689A1 - Computer input device and controller therefor - Google Patents
Computer input device and controller therefor Download PDFInfo
- Publication number
- CA2309689A1 CA2309689A1 CA002309689A CA2309689A CA2309689A1 CA 2309689 A1 CA2309689 A1 CA 2309689A1 CA 002309689 A CA002309689 A CA 002309689A CA 2309689 A CA2309689 A CA 2309689A CA 2309689 A1 CA2309689 A1 CA 2309689A1
- Authority
- CA
- Canada
- Prior art keywords
- pointer
- display
- cursor
- travel
- path
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04812—Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Position Input By Displaying (AREA)
Abstract
A computer input device, such as a mouse, and a method of operating the same.
Initially, the location of the cursor (15) at various times on the screen (11) is detected. From these various positions a path of travel and a rate of travel of the cursor (15) are computed. Display objects, such as buttons (16, 17) which exist along or near the path of travel are identified and designated as potential targets. The rate of change in the rate of travel is also computed. This information is used to decide if a user is slowing down in approach of a specific screen display object. If certain deceleration criteria are met, then that target which the user is approaching is designated as the intended target and the cursor (15) is translated smoothly to that target.
After the pointer has been moved to the intended display object, the pointer is maintained at that object and small mouse movements are ignored, thereby allowing the user to maintain the cursor (15) on the desired target despite small, possibly inadvertent, mouse movements. If the movement or acceleration of the mouse exceed a predetermined threshold, then this hold is released.
Initially, the location of the cursor (15) at various times on the screen (11) is detected. From these various positions a path of travel and a rate of travel of the cursor (15) are computed. Display objects, such as buttons (16, 17) which exist along or near the path of travel are identified and designated as potential targets. The rate of change in the rate of travel is also computed. This information is used to decide if a user is slowing down in approach of a specific screen display object. If certain deceleration criteria are met, then that target which the user is approaching is designated as the intended target and the cursor (15) is translated smoothly to that target.
After the pointer has been moved to the intended display object, the pointer is maintained at that object and small mouse movements are ignored, thereby allowing the user to maintain the cursor (15) on the desired target despite small, possibly inadvertent, mouse movements. If the movement or acceleration of the mouse exceed a predetermined threshold, then this hold is released.
Description
COMPUTER INPUT DEVICE AND CONTROLLER THEREFOR
TECHNICAL FIELD
The present invention relates generally to the field of input pointing devices and S controllers therefor.
BACKGROUND OF THE INVENTION
Computer pointing devices, such as mice, are among the most popular devices for interfacing with a digital computer. This is especially true in a graphic user interface (GUI) environment. Generally, in a GUI environment the position of the cursor on the computer screen ' (which defines the user's point of interface with a particular software package) is directly controlled by the user by moving the mouse in two dimensions on a flat surface. Movements of the mouse correspond to the two-dimensional motion of the cursor on the screen. One problem with the use of a mouse in a GUI interface is the relative difficulty of selecting a specific screen object easily and quickly. In the past, several approaches have been tried to solve this problem.
For example, U.S. Patent No. 5,298,890 of Kanamarv. et al. teaches the technique of evaluating the direction of motion of the cursor by looking at two successive positions separated by a short time interval. From this information a direction vector is established and the cursor is automatically placed at the next possible target along that linear direction.
Several problems exist with this method primarily because more than one button may exist along a given linear direction, giving the resulting cursor movement a "jumpy" feel. In addition, a user may not always desire to or actually go in a straight line direction to reach the intended target.
U.S. Patent No. 5,508,717 of Miller discloses another approach wherein different speed factors are used for certain predetermined screen locations, so that for a given mouse speed the 2~ cursor moves more quickly when remote from certain screen objects and moves more slowly in areas near the screen objects. This, however, causes the user to experience inconsistent cursor speeds even when merely crossing a button with no intention of engaging it.
This not only wastes the user's time but can be very frustrating, especially in screen areas crowded with numerous potential targets.
IBM Technical Disclosure Bulletin, Volume 37, Number 5, 1 May 1994 discloses a mouse pointing assistance program in which the locations of a pointer are detected at various times and evaluated to determine the location of the pointer, a rate of travel, and a rate of change in travel. The computer program (method) also detects display objects positioned near the current pointer position and finds the closest (nearest) display object. If the mouse stops very quickly, the program leads or corrects the pointer to the nearest display object, regardless of the direction of the display object.
S EP document number 0670541 A2 (Microsoft Corporation) describes a system and method for computer cursor control to prevent inadvertent wrapping of a cursor generated on a computer display from one side of the screen to the other side. The system monitors and considers a variety of factors to determine whether the user actually intends to wrap the cursor from one side of the display to the other. Such factors include the time for which the user moves the cursor against the border (edge) of the display, the distance that the cursor would have moved but for the border, and the velocity or acceleration with which the cursor approaches the border.
EP document number 0665489A2 (Microsoft Corporation) relates to a system and method for computer cursor control. This document describes that the system can calculate a direction of travel of a cursor to determine if there is a screen object along the direction of travel.
1 ~ If there is a screen object along the direction of travel, the cursor is automatically moved to the screen object, regardless of whether the cursor was speeding up or slowing down.
Patent Abstract (from Japan), Volume 13, Number 590 (P-984), 1989, (NEC
Corporation) describes a graphic processor and a method of controlling mouse operation therefor. As best can be understood, this document describes a control of the cursor as carried out in one manner when the speed of the cursor is below certain threshold and is carried out in another manner when the speed of the cursor is above the certain threshold.
Document W09322758 (Kensington Microware) describes a method and apparatus for cursor positioning to move the cursor from one specific, predefined location to another specific, predefined location. In this way, the cursor's position is moved from one object to another object.
EP document 0671682A2 (Microsoft Corporation) describes an apparatus and method for automatically positioning a cursor on a control object. In the apparatus and method taught therein, the cursor jumps to the nearest activated button in the direction of movement.
Accordingly, a need still exists for an input device and a method of cursor control which allows a user to engage the intended screen target quickly, easily, and smoothly, without having to temporarily engage and subsequently release unwanted targets. It is to the provision of such a device and method that the present invention is primarily directed.
SUMMARY OF THE INVENTION
Briefly described, in a preferred form the invention comprises a method of operating a computer pointing device, such as a mouse, which allows the user to move the cursor to a desired screen location quickly, easily, and naturally using the mouse. In the novel method, the location of the cursor at various times on the screen is detected. From these various positions a path of travel and a rate of travel of the cursor are computed. Display objects, such as buttons, which exist along or near the path of travel are identified and designated as potential targets. The rate of change in the rate of travel is also computed. This information is used to decide if a user is slowing down in approach of a specific display object. If certain deceleration criteria are met, then that target display object which the user is approaching is designated as the intended target display object and the cursor is translated smoothly to that target display object.
l~ Preferably, after the pointer has been moved to the target display object, the pointer is maintained at that display object and small mouse movements are ignored, thereby allowing the user to maintain the cursor on the desired target display object despite small, possibly inadvertent, mouse movements. If the movement or acceleration of the mouse exceeds a predetermined threshold, then this hold is released.
In another preferred form, the present invention comprises a computer system including a display for displaying screen objects and a pointer, and a pointing device which operates in conjunction with the display for changing the pointer's position on the display. The computer system further comprises control means for moving the pointer to a selected display object in response to a detected decrease in speed of the pointer as the pointer approaches the selected display object.
Preferably, the computer system's control means also maintains the pointer on the selected display object despite small movements by the pointing device and further the control means releases the pointer from the selected display object when the movements of the pointing device exceed a predetermined threshold value.
The present invention allows the user to engage a desired screen target easily. Also, the user is able to move the cursor quickly and easily across large areas of empty screen. Unlike the prior art, the user is able to move equally quickly over unintended targets and is able to engage the desired target directly, even if that target exists in a target-rich area of the screen.
Accordingly, it is a primary object of this invention to provide a method and apparatus for cursor pointing in a graphics user interface environment which allows the user to reach an intended screen object quickly and easily.
It is another object of the present invention to provide a method and apparatus which allows the user to move freely over blank computer screen areas, as well as over unintended targets.
It is another object of the present invention to provide a method and apparatus for cursor control which allows a cursor to be held securely on a selected screen object despite small or unintended movements of the pointing device.
It is another object of the present invention to provide a method and apparatus for cursor control which is elegant in its execution, reliable in operation, and economical in manufacture.
These and other objects, advantages, and features of the invention will become apparent to those knowledgeable in this field when the following description is considered.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a schematic illustration of a computer system according to the present invention in one preferred form.
Fig. 2 is a flow chart depicting steps carried out in a method of operating the computer system of Fig. 1.
Fig. 3 shows one aspect of one of the steps according to the method of Fig. 2.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Refernng now to the drawing figures, wherein like reference numerals represent like parts throughout the several views, Fig. 1 shows a computer system 10 embodying the present invention. The computer system 10 includes a display 11 and an input device in the form of a keyboard 12. The computer system is provided with a graphic user interface (GUI). The CPU, keyboard, and display on the computer system 10 are widely known and can take numerous forms. The display 11 displays various screen objects, such as window 13, pull down menus indicated generally at 14, and screen buttons 16 and 17. The display also displays a cursor 15.
The cursor depicted is in the form of an arrow pointer, but other shapes of cursors or pointing indications can be employed.
The computer system 10 also includes a second input device in the form of a mouse 18 connected to the computer system by a cable 19. The mouse can be a single button unit, two 5 button unit, three button unit, etc. Such a mouse is widely known and commercially available.
As is common in the prior art, movements of the mouse in two dimensions on a flat surface are monitored to generate movements of the cursor or pointer 15 on the display 11.
Movement of the cursor 15 on the screen 11 corresponds generally to the movement of the mouse 18 by the following relationship:
Xc c SXm Yc - SYm where xm(ym) represents the speed of the mouse 18 in the x(y) directions on the two-dimensional flat surface and z~(y~) represents the speed of the cursor 15 on the screen 11. The mathematical constant (a speed factor) s is a predetermined ratio.
When the user positions the mouse 18 directly over a soft-button 16 (for example) he or she wishes to engage, a button or switch on mouse 18 is used to signal the computer's CPU to execute that portion of the program associated with soft-button 16.
Referring now to Fig. 2, the method 20 according to the present invention is depicted.
The method 20 is executed using the computer system 10 of Fig. 1. Simply stated, in the novel method 20, the location of the cursor 15 at various times on the screen 11 is detected. From these various positions, a path of travel and a rate of travel of the cursor 15 are computed. Display objects, such as the buttons 16 and 17, which may exist along or near the path of travel are identified and designated as potential targets. A rate of change in the rate of travel (acceleration or deceleration) is also calculated. This information is used to decide if a user of the computer system 10 is slowing down in approach of a specific display object. If deceleration criteria is met, then that target display object which the user is approaching is designated as an intended display object or target display object and the cursor 15 is translated smoothly to that target display object. After the pointer has been moved to the target display object, the pointer is maintained at that display object and small movements of the mouse 18 are ignored. This allows the user to maintain the cursor 15 on the desired display object despite small, inadvertent mouse movements. If the movement or acceleration of the mouse 18 exceeds a predetermined threshold, then the "hold" on the cursor 15 at the display object is released.
Referring now with more specificity to Fig. 2, in the first program step 22, the computer system 10 determines an initial position P, of the cursor 15. The initial position is read as a two dimensional coordinate (x,,yl). After a time interval fit,, which can be very small compared to other time intervals in the system, a new cursor position PZ is determined, as shown in program step 24.
From P, and P2, in this embodiment, the linear travel direction of the cursor 15 is determined. An angular factor is preset which represents a possible user error in direction. This factor forms a wedge-shaped enclosure around the calculated direction. This is referred to as the "cone" 45 as depicted in Fig. 3. The "spread" or angle 47 of the cone 45 can be varied. The cone 45 is projected to the screen edge and any buttons or pull down menus or other active screen objects which fall within the cone 45 are designated as possible targets.
After an additional time step Ot2, a third cursor position P3 is computed as depicted in program step 26. At this point, in the preferred embodiment, each possible target can be tested to determine if the cursor 15 is within some preset distance (relative to each possible target). If no target is within range, P3 becomes the new P1 and the process begins again at program step 24 as shown in block 32. If a possible target is within the preset range, then both the speed and acceleration of the cursor 15 are computed using P,, P2, and P3 as shown in program block 34.
Cursor acceleration is evaluated, as shown in block 36, to determine if it is negative. If acceleration is negative, then the user is decelerating as the cursor 1 S
approaches the potential target. If the change in velocity is negative, in one embodiment, a speed criteria may also be applied. In such a case, if the cursor speed is above some upper threshold value, as shown in block 38, then the program assumes that the user does not intend to engage that target. If, on the other hand, the velocity is below that threshold and decelerating, then the target is assumed to be the intended one and the cursor 15 is automatically (and smoothly) translated to the target position, as shown in block 40. Similarly, if the cursor acceleration is positive, a lower velocity threshold may be tested, as shown in block 39. If the velocity is below this threshold, then the target is assumed to be the intended one, regardless of the acceleration, and the cursor will be smoothly translated to the target position as shown in block 40. If these criteria are not met, again P, becomes the new P, and the process begins again, as shown in block 42.
Fig. 3 shows the "cone" 45 around the linear travel direction of the cursor 15. Buttons 16 and 17 are depicted within cone 45 and are, therefore, designated as possible targets.
S The implementation of these steps can be done in any number of ways. For example, the size of the cone could be software-specific. The order of evaluating velocity and acceleration can be reversed, or the time intervals can be varied.
In another embodiment, a dual speed factor system, somewhat similar to that which exists in the prior art, could be used in conjunction with this invention. The problems which exist in the prior art, however, would be eliminated in that the specific intended target would be the only area of the screen in which the lower speed factor would be triggered rather than around simply any target as in the prior art.
In yet another possible embodiment, the software could allow the user to maintain forward movement control of the cursor 15 even after the intended target has been identified, but 1 S the direction of cursor movement could be fixed in a straight line between the cursor position and the intended target.
The present invention allows the user to engage a desired screen object easily. Also, the user is able to move the cursor quickly and easily across large areas of empty screen without being slowed down by unintended screen objects. The invention also allows the user to directly and easily engage a desired screen object even in areas of the screen that have numerous screen objects. The invention also allows the cursor to be held securely on a selected screen object despite small or on intended movements of the mouse. This approach is elegant in its simplicity and should prove to be reliable in operation and economical to manufacture.
TECHNICAL FIELD
The present invention relates generally to the field of input pointing devices and S controllers therefor.
BACKGROUND OF THE INVENTION
Computer pointing devices, such as mice, are among the most popular devices for interfacing with a digital computer. This is especially true in a graphic user interface (GUI) environment. Generally, in a GUI environment the position of the cursor on the computer screen ' (which defines the user's point of interface with a particular software package) is directly controlled by the user by moving the mouse in two dimensions on a flat surface. Movements of the mouse correspond to the two-dimensional motion of the cursor on the screen. One problem with the use of a mouse in a GUI interface is the relative difficulty of selecting a specific screen object easily and quickly. In the past, several approaches have been tried to solve this problem.
For example, U.S. Patent No. 5,298,890 of Kanamarv. et al. teaches the technique of evaluating the direction of motion of the cursor by looking at two successive positions separated by a short time interval. From this information a direction vector is established and the cursor is automatically placed at the next possible target along that linear direction.
Several problems exist with this method primarily because more than one button may exist along a given linear direction, giving the resulting cursor movement a "jumpy" feel. In addition, a user may not always desire to or actually go in a straight line direction to reach the intended target.
U.S. Patent No. 5,508,717 of Miller discloses another approach wherein different speed factors are used for certain predetermined screen locations, so that for a given mouse speed the 2~ cursor moves more quickly when remote from certain screen objects and moves more slowly in areas near the screen objects. This, however, causes the user to experience inconsistent cursor speeds even when merely crossing a button with no intention of engaging it.
This not only wastes the user's time but can be very frustrating, especially in screen areas crowded with numerous potential targets.
IBM Technical Disclosure Bulletin, Volume 37, Number 5, 1 May 1994 discloses a mouse pointing assistance program in which the locations of a pointer are detected at various times and evaluated to determine the location of the pointer, a rate of travel, and a rate of change in travel. The computer program (method) also detects display objects positioned near the current pointer position and finds the closest (nearest) display object. If the mouse stops very quickly, the program leads or corrects the pointer to the nearest display object, regardless of the direction of the display object.
S EP document number 0670541 A2 (Microsoft Corporation) describes a system and method for computer cursor control to prevent inadvertent wrapping of a cursor generated on a computer display from one side of the screen to the other side. The system monitors and considers a variety of factors to determine whether the user actually intends to wrap the cursor from one side of the display to the other. Such factors include the time for which the user moves the cursor against the border (edge) of the display, the distance that the cursor would have moved but for the border, and the velocity or acceleration with which the cursor approaches the border.
EP document number 0665489A2 (Microsoft Corporation) relates to a system and method for computer cursor control. This document describes that the system can calculate a direction of travel of a cursor to determine if there is a screen object along the direction of travel.
1 ~ If there is a screen object along the direction of travel, the cursor is automatically moved to the screen object, regardless of whether the cursor was speeding up or slowing down.
Patent Abstract (from Japan), Volume 13, Number 590 (P-984), 1989, (NEC
Corporation) describes a graphic processor and a method of controlling mouse operation therefor. As best can be understood, this document describes a control of the cursor as carried out in one manner when the speed of the cursor is below certain threshold and is carried out in another manner when the speed of the cursor is above the certain threshold.
Document W09322758 (Kensington Microware) describes a method and apparatus for cursor positioning to move the cursor from one specific, predefined location to another specific, predefined location. In this way, the cursor's position is moved from one object to another object.
EP document 0671682A2 (Microsoft Corporation) describes an apparatus and method for automatically positioning a cursor on a control object. In the apparatus and method taught therein, the cursor jumps to the nearest activated button in the direction of movement.
Accordingly, a need still exists for an input device and a method of cursor control which allows a user to engage the intended screen target quickly, easily, and smoothly, without having to temporarily engage and subsequently release unwanted targets. It is to the provision of such a device and method that the present invention is primarily directed.
SUMMARY OF THE INVENTION
Briefly described, in a preferred form the invention comprises a method of operating a computer pointing device, such as a mouse, which allows the user to move the cursor to a desired screen location quickly, easily, and naturally using the mouse. In the novel method, the location of the cursor at various times on the screen is detected. From these various positions a path of travel and a rate of travel of the cursor are computed. Display objects, such as buttons, which exist along or near the path of travel are identified and designated as potential targets. The rate of change in the rate of travel is also computed. This information is used to decide if a user is slowing down in approach of a specific display object. If certain deceleration criteria are met, then that target display object which the user is approaching is designated as the intended target display object and the cursor is translated smoothly to that target display object.
l~ Preferably, after the pointer has been moved to the target display object, the pointer is maintained at that display object and small mouse movements are ignored, thereby allowing the user to maintain the cursor on the desired target display object despite small, possibly inadvertent, mouse movements. If the movement or acceleration of the mouse exceeds a predetermined threshold, then this hold is released.
In another preferred form, the present invention comprises a computer system including a display for displaying screen objects and a pointer, and a pointing device which operates in conjunction with the display for changing the pointer's position on the display. The computer system further comprises control means for moving the pointer to a selected display object in response to a detected decrease in speed of the pointer as the pointer approaches the selected display object.
Preferably, the computer system's control means also maintains the pointer on the selected display object despite small movements by the pointing device and further the control means releases the pointer from the selected display object when the movements of the pointing device exceed a predetermined threshold value.
The present invention allows the user to engage a desired screen target easily. Also, the user is able to move the cursor quickly and easily across large areas of empty screen. Unlike the prior art, the user is able to move equally quickly over unintended targets and is able to engage the desired target directly, even if that target exists in a target-rich area of the screen.
Accordingly, it is a primary object of this invention to provide a method and apparatus for cursor pointing in a graphics user interface environment which allows the user to reach an intended screen object quickly and easily.
It is another object of the present invention to provide a method and apparatus which allows the user to move freely over blank computer screen areas, as well as over unintended targets.
It is another object of the present invention to provide a method and apparatus for cursor control which allows a cursor to be held securely on a selected screen object despite small or unintended movements of the pointing device.
It is another object of the present invention to provide a method and apparatus for cursor control which is elegant in its execution, reliable in operation, and economical in manufacture.
These and other objects, advantages, and features of the invention will become apparent to those knowledgeable in this field when the following description is considered.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a schematic illustration of a computer system according to the present invention in one preferred form.
Fig. 2 is a flow chart depicting steps carried out in a method of operating the computer system of Fig. 1.
Fig. 3 shows one aspect of one of the steps according to the method of Fig. 2.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Refernng now to the drawing figures, wherein like reference numerals represent like parts throughout the several views, Fig. 1 shows a computer system 10 embodying the present invention. The computer system 10 includes a display 11 and an input device in the form of a keyboard 12. The computer system is provided with a graphic user interface (GUI). The CPU, keyboard, and display on the computer system 10 are widely known and can take numerous forms. The display 11 displays various screen objects, such as window 13, pull down menus indicated generally at 14, and screen buttons 16 and 17. The display also displays a cursor 15.
The cursor depicted is in the form of an arrow pointer, but other shapes of cursors or pointing indications can be employed.
The computer system 10 also includes a second input device in the form of a mouse 18 connected to the computer system by a cable 19. The mouse can be a single button unit, two 5 button unit, three button unit, etc. Such a mouse is widely known and commercially available.
As is common in the prior art, movements of the mouse in two dimensions on a flat surface are monitored to generate movements of the cursor or pointer 15 on the display 11.
Movement of the cursor 15 on the screen 11 corresponds generally to the movement of the mouse 18 by the following relationship:
Xc c SXm Yc - SYm where xm(ym) represents the speed of the mouse 18 in the x(y) directions on the two-dimensional flat surface and z~(y~) represents the speed of the cursor 15 on the screen 11. The mathematical constant (a speed factor) s is a predetermined ratio.
When the user positions the mouse 18 directly over a soft-button 16 (for example) he or she wishes to engage, a button or switch on mouse 18 is used to signal the computer's CPU to execute that portion of the program associated with soft-button 16.
Referring now to Fig. 2, the method 20 according to the present invention is depicted.
The method 20 is executed using the computer system 10 of Fig. 1. Simply stated, in the novel method 20, the location of the cursor 15 at various times on the screen 11 is detected. From these various positions, a path of travel and a rate of travel of the cursor 15 are computed. Display objects, such as the buttons 16 and 17, which may exist along or near the path of travel are identified and designated as potential targets. A rate of change in the rate of travel (acceleration or deceleration) is also calculated. This information is used to decide if a user of the computer system 10 is slowing down in approach of a specific display object. If deceleration criteria is met, then that target display object which the user is approaching is designated as an intended display object or target display object and the cursor 15 is translated smoothly to that target display object. After the pointer has been moved to the target display object, the pointer is maintained at that display object and small movements of the mouse 18 are ignored. This allows the user to maintain the cursor 15 on the desired display object despite small, inadvertent mouse movements. If the movement or acceleration of the mouse 18 exceeds a predetermined threshold, then the "hold" on the cursor 15 at the display object is released.
Referring now with more specificity to Fig. 2, in the first program step 22, the computer system 10 determines an initial position P, of the cursor 15. The initial position is read as a two dimensional coordinate (x,,yl). After a time interval fit,, which can be very small compared to other time intervals in the system, a new cursor position PZ is determined, as shown in program step 24.
From P, and P2, in this embodiment, the linear travel direction of the cursor 15 is determined. An angular factor is preset which represents a possible user error in direction. This factor forms a wedge-shaped enclosure around the calculated direction. This is referred to as the "cone" 45 as depicted in Fig. 3. The "spread" or angle 47 of the cone 45 can be varied. The cone 45 is projected to the screen edge and any buttons or pull down menus or other active screen objects which fall within the cone 45 are designated as possible targets.
After an additional time step Ot2, a third cursor position P3 is computed as depicted in program step 26. At this point, in the preferred embodiment, each possible target can be tested to determine if the cursor 15 is within some preset distance (relative to each possible target). If no target is within range, P3 becomes the new P1 and the process begins again at program step 24 as shown in block 32. If a possible target is within the preset range, then both the speed and acceleration of the cursor 15 are computed using P,, P2, and P3 as shown in program block 34.
Cursor acceleration is evaluated, as shown in block 36, to determine if it is negative. If acceleration is negative, then the user is decelerating as the cursor 1 S
approaches the potential target. If the change in velocity is negative, in one embodiment, a speed criteria may also be applied. In such a case, if the cursor speed is above some upper threshold value, as shown in block 38, then the program assumes that the user does not intend to engage that target. If, on the other hand, the velocity is below that threshold and decelerating, then the target is assumed to be the intended one and the cursor 15 is automatically (and smoothly) translated to the target position, as shown in block 40. Similarly, if the cursor acceleration is positive, a lower velocity threshold may be tested, as shown in block 39. If the velocity is below this threshold, then the target is assumed to be the intended one, regardless of the acceleration, and the cursor will be smoothly translated to the target position as shown in block 40. If these criteria are not met, again P, becomes the new P, and the process begins again, as shown in block 42.
Fig. 3 shows the "cone" 45 around the linear travel direction of the cursor 15. Buttons 16 and 17 are depicted within cone 45 and are, therefore, designated as possible targets.
S The implementation of these steps can be done in any number of ways. For example, the size of the cone could be software-specific. The order of evaluating velocity and acceleration can be reversed, or the time intervals can be varied.
In another embodiment, a dual speed factor system, somewhat similar to that which exists in the prior art, could be used in conjunction with this invention. The problems which exist in the prior art, however, would be eliminated in that the specific intended target would be the only area of the screen in which the lower speed factor would be triggered rather than around simply any target as in the prior art.
In yet another possible embodiment, the software could allow the user to maintain forward movement control of the cursor 15 even after the intended target has been identified, but 1 S the direction of cursor movement could be fixed in a straight line between the cursor position and the intended target.
The present invention allows the user to engage a desired screen object easily. Also, the user is able to move the cursor quickly and easily across large areas of empty screen without being slowed down by unintended screen objects. The invention also allows the user to directly and easily engage a desired screen object even in areas of the screen that have numerous screen objects. The invention also allows the cursor to be held securely on a selected screen object despite small or on intended movements of the mouse. This approach is elegant in its simplicity and should prove to be reliable in operation and economical to manufacture.
Claims (10)
1. A method (20) of operation of a computer pointing device (18), comprising the steps of:
detecting locations of a pointer (15) on a display (11) at various times, where the location of the pointer is controlled by the pointing device (18);
evaluating the detected locations of the pointer (15) to determine a path of travel;
detecting display objects (16) on the display (11) along the path of travel;
and the method characterised by evaluating the path of travel, the rate of change in the rate of travel, and the detected display objects to determine whether the pointer (15) is slowing down in approach of one of the display objects along the path of travel, and, if so, moving the pointer on the display to the one of the display objects.
detecting locations of a pointer (15) on a display (11) at various times, where the location of the pointer is controlled by the pointing device (18);
evaluating the detected locations of the pointer (15) to determine a path of travel;
detecting display objects (16) on the display (11) along the path of travel;
and the method characterised by evaluating the path of travel, the rate of change in the rate of travel, and the detected display objects to determine whether the pointer (15) is slowing down in approach of one of the display objects along the path of travel, and, if so, moving the pointer on the display to the one of the display objects.
2. A method (20) as claimed in Claim 1 further characterised by the step of, after the pointer (15) has been moved to the one of the display objects (16), maintaining the pointer at the one of the display objects despite small movements of the computer pointing device (18) and releasing the pointer when movements of the computer pointing device (18) exceeds a certain threshold value.
3. The method (20) of Claim 2 characterised in that the threshold value comprises a predetermined distance.
4. The method (20) as claimed in Claim 1 characterised in that the step of moving the pointer (15) on the display (11) comprises moving the pointer (18) on the display to a nearest one of the display objects (16) along the path of travel.
5. The method (20) as claimed in Claim 4 characterised in that the step of moving the pointer (15) comprises moving the pointer to a nearest active display object.
6. A computer system (10) comprising:
a display (11) for displaying screen objects (16) and a pointer (15);
a pointing device (18) which operates in conjunction with said display for changing said pointer's position on the display; and characterised in that control means (20) are provided for moving said pointer to a selected display object (16) in response to a detected decrease in speed of said pointer (15) as said pointer approaches said selected display object.
a display (11) for displaying screen objects (16) and a pointer (15);
a pointing device (18) which operates in conjunction with said display for changing said pointer's position on the display; and characterised in that control means (20) are provided for moving said pointer to a selected display object (16) in response to a detected decrease in speed of said pointer (15) as said pointer approaches said selected display object.
7. A computer system (10) as claimed in Claim 6 characterised in that said control means (20) are provided also for maintaining said pointer (15) on said selected display object despite small movements by said pointing device (18) and for releasing said pointer from said selected display object when movements of said pointing device exceed a predetermined threshold value.
8. A computer system (10) as claimed in Claim 6 characterised in that said control means (20) evaluates a path of travel of said pointer (15) and detected display objects (16) for moving said pointer to said selected display object in response to said detected decrease in speed of said pointer, said path of travel, and said detected display objects.
9. A computer system (10) as claimed in Claim 8 characterised in that said control means (20) further evaluates the status of said detected display objects.
10. A computer system (10) as claimed in Claim 8 characterised in that said control means (20) moves said pointer to a nearest one of said detected display objects.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/788,598 | 1996-11-12 | ||
US08/788,598 US5870079A (en) | 1996-11-12 | 1996-11-12 | Computer input device and controller therefor |
PCT/US1997/020833 WO1998021645A1 (en) | 1996-11-12 | 1997-11-12 | Computer input device and controller therefor |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2309689A1 true CA2309689A1 (en) | 1998-05-22 |
Family
ID=25144973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002309689A Abandoned CA2309689A1 (en) | 1996-11-12 | 1997-11-12 | Computer input device and controller therefor |
Country Status (4)
Country | Link |
---|---|
US (1) | US5870079A (en) |
AU (1) | AU5438798A (en) |
CA (1) | CA2309689A1 (en) |
WO (1) | WO1998021645A1 (en) |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6072469A (en) * | 1996-06-20 | 2000-06-06 | Chen; Mei-Yun | Cursor positioning device for computer system |
JP2000039966A (en) * | 1998-07-23 | 2000-02-08 | Alps Electric Co Ltd | Method for moving pointing cursor |
KR100301016B1 (en) * | 1998-10-27 | 2001-09-06 | 윤종용 | Method for selecting on-screen menu and apparatus thereof |
DE19858647A1 (en) * | 1998-12-18 | 2000-06-29 | Alcatel Sa | Cursor control method for computer system has cursor movement velocity characteristics altered in dependence on distance from next graphic object on display screen |
US7098933B1 (en) * | 1999-02-24 | 2006-08-29 | Autodesk, Inc. | Acquiring and unacquiring alignment and extension points |
JP3477675B2 (en) * | 1999-06-04 | 2003-12-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Pointer operation assist method |
US7194702B1 (en) * | 1999-06-29 | 2007-03-20 | Gateway Inc. | System method apparatus and software for minimizing unintended cursor movement |
US6573896B1 (en) * | 1999-07-08 | 2003-06-03 | Dassault Systemes | Three-dimensional arrow |
GB2352154B (en) * | 1999-07-16 | 2003-08-27 | Ibm | Automatic target enlargement for simplified selection |
JP3286633B2 (en) | 1999-09-14 | 2002-05-27 | 株式会社ソニー・コンピュータエンタテインメント | Image creation method, storage medium, and program execution device |
JP3321570B2 (en) | 1999-09-14 | 2002-09-03 | 株式会社ソニー・コンピュータエンタテインメント | Moving image creation method, storage medium, and program execution device |
JP2001155176A (en) | 1999-09-14 | 2001-06-08 | Sony Computer Entertainment Inc | Image preparing method, storage medium and program executing device |
GB2364226A (en) * | 2000-06-30 | 2002-01-16 | Nokia Corp | Method of selecting an object by controlling an on screen pointer |
US6693653B1 (en) * | 2000-09-19 | 2004-02-17 | Rockwell Collins, Inc. | Method of assisting cursor movement toward a nearby displayed target |
US6583781B1 (en) * | 2000-10-17 | 2003-06-24 | International Business Machines Corporation | Methods, systems and computer program products for controlling events associated with user interface elements by capturing user intent based on pointer movements |
US6486874B1 (en) * | 2000-11-06 | 2002-11-26 | Motorola, Inc. | Method of pre-caching user interaction elements using input device position |
US6717600B2 (en) * | 2000-12-15 | 2004-04-06 | International Business Machines Corporation | Proximity selection of selectable item in a graphical user interface |
JP3741965B2 (en) * | 2001-03-19 | 2006-02-01 | 株式会社ナムコ | Image processing apparatus, image processing program, and recording medium recording the program |
US6856333B2 (en) * | 2001-04-30 | 2005-02-15 | International Business Machines Corporation | Providing a user interactive interface for physically impaired users dynamically modifiable responsive to preliminary user capability testing |
US20030184594A1 (en) * | 2002-03-25 | 2003-10-02 | John Ellenby | Apparatus and methods for interfacing with remote addressing systems |
US20040017355A1 (en) * | 2002-07-24 | 2004-01-29 | Youngtack Shim | Cursor control systems and methods |
US7454707B2 (en) * | 2002-09-30 | 2008-11-18 | Canon Kabushiki Kaisha | Image editing method, image editing apparatus, program for implementing image editing method, and recording medium recording program |
US20040250218A1 (en) * | 2003-06-06 | 2004-12-09 | Microsoft Corporation | Empathetic human-machine interfaces |
US7210107B2 (en) * | 2003-06-27 | 2007-04-24 | Microsoft Corporation | Menus whose geometry is bounded by two radii and an arc |
JP2005044241A (en) * | 2003-07-24 | 2005-02-17 | Nec Corp | Pointing device notification system and method |
FR2860890A1 (en) * | 2003-10-08 | 2005-04-15 | Centre Nat Rech Scient | Visual user interface object e.g. icon, selection control method for e.g. laptop computer, involves moving timorous cursor by discrete leaps, where target of leap is found by cursors current direction when it leaves current object |
GB0403416D0 (en) * | 2004-02-17 | 2004-03-24 | Wivenhoe Technology Ltd | Control system for computer devices |
EP1574971A1 (en) * | 2004-03-10 | 2005-09-14 | Alcatel | A method, a hypermedia browser, a network client, a network server, and a computer software product for providing joint navigation of hypermedia documents |
US7383517B2 (en) * | 2004-04-21 | 2008-06-03 | Microsoft Corporation | System and method for acquiring a target with intelligent pointer movement |
US7293246B2 (en) * | 2004-04-21 | 2007-11-06 | Microsoft Corporation | System and method for aligning objects using non-linear pointer movement |
WO2005109215A2 (en) * | 2004-04-30 | 2005-11-17 | Hillcrest Laboratories, Inc. | Methods and devices for removing unintentional movement in free space pointing devices |
CN102566751B (en) | 2004-04-30 | 2016-08-03 | 希尔克瑞斯特实验室公司 | Free space pointing devices and method |
US8629836B2 (en) | 2004-04-30 | 2014-01-14 | Hillcrest Laboratories, Inc. | 3D pointing devices with orientation compensation and improved usability |
JP4306592B2 (en) * | 2004-11-15 | 2009-08-05 | ソニー株式会社 | Playback device and display control method |
WO2006058129A2 (en) | 2004-11-23 | 2006-06-01 | Hillcrest Laboratories, Inc. | Semantic gaming and application transformation |
US8566751B2 (en) | 2005-01-24 | 2013-10-22 | International Business Machines Corporation | GUI pointer automatic position vectoring |
US8577684B2 (en) | 2005-07-13 | 2013-11-05 | Intellisist, Inc. | Selective security masking within recorded speech utilizing speech recognition techniques |
US7599520B2 (en) * | 2005-11-18 | 2009-10-06 | Accenture Global Services Gmbh | Detection of multiple targets on a plane of interest |
US8209620B2 (en) | 2006-01-31 | 2012-06-26 | Accenture Global Services Limited | System for storage and navigation of application states and interactions |
US7523418B2 (en) * | 2006-03-15 | 2009-04-21 | International Business Machines Corporation | Techniques for choosing a position on a display having a cursor |
US20070216641A1 (en) * | 2006-03-20 | 2007-09-20 | Motorola, Inc. | User interface stabilization method and system |
WO2007113612A1 (en) | 2006-03-30 | 2007-10-11 | Nokia Corporation | Cursor control |
US8433915B2 (en) * | 2006-06-28 | 2013-04-30 | Intellisist, Inc. | Selective security masking within recorded speech |
FR2917196B1 (en) * | 2007-06-05 | 2010-08-20 | Thales Sa | VISUALIZATION DEVICE COMPRISING AT LEAST ONE PROHIBITED AREA AND A POINTER |
US8810511B2 (en) * | 2007-09-11 | 2014-08-19 | Gm Global Technology Operations, Llc | Handheld electronic device with motion-controlled cursor |
WO2009044432A1 (en) * | 2007-10-05 | 2009-04-09 | Thompson Licensing | Pointer controlling apparatus |
US20090207144A1 (en) * | 2008-01-07 | 2009-08-20 | Next Holdings Limited | Position Sensing System With Edge Positioning Enhancement |
EP2081108A1 (en) * | 2008-01-16 | 2009-07-22 | Research in Motion Limited | System and Method of Navigating Graphical User Interface Elements |
JP2011511332A (en) | 2008-01-30 | 2011-04-07 | トムソン ライセンシング | Pointer control device, control method, and pointer control program |
US10684737B1 (en) * | 2009-05-01 | 2020-06-16 | The Mathworks, Inc. | Identifying a target for a pointing device |
WO2012012262A1 (en) * | 2010-07-19 | 2012-01-26 | Google Inc. | Predictive hover triggering |
JP5235032B2 (en) * | 2011-04-04 | 2013-07-10 | シャープ株式会社 | Display device, information processing system, and program |
KR20130072638A (en) * | 2011-12-22 | 2013-07-02 | 엘지전자 주식회사 | Method for operating an image display apparatus |
US9819798B2 (en) | 2013-03-14 | 2017-11-14 | Intellisist, Inc. | Computer-implemented system and method for efficiently facilitating appointments within a call center via an automatic call distributor |
US9250773B2 (en) | 2013-04-30 | 2016-02-02 | International Business Machines Corporation | Accessible chart navigation using object neighborhood |
JP6244846B2 (en) * | 2013-11-18 | 2017-12-13 | 株式会社リコー | Information processing terminal, information processing method, program, and information processing system |
US10430017B2 (en) * | 2013-12-04 | 2019-10-01 | City University Of Hong Kong | Target pointing system making use of velocity dependent cursor |
US9652125B2 (en) | 2015-06-18 | 2017-05-16 | Apple Inc. | Device, method, and graphical user interface for navigating media content |
US9928029B2 (en) | 2015-09-08 | 2018-03-27 | Apple Inc. | Device, method, and graphical user interface for providing audiovisual feedback |
US9990113B2 (en) | 2015-09-08 | 2018-06-05 | Apple Inc. | Devices, methods, and graphical user interfaces for moving a current focus using a touch-sensitive remote control |
JP2017091327A (en) * | 2015-11-12 | 2017-05-25 | 富士通株式会社 | Pointing support device, pointing support method and pointing support program |
US10754978B2 (en) | 2016-07-29 | 2020-08-25 | Intellisist Inc. | Computer-implemented system and method for storing and retrieving sensitive information |
US11093126B2 (en) * | 2017-04-13 | 2021-08-17 | Adobe Inc. | Drop zone prediction for user input operations |
US11922006B2 (en) | 2018-06-03 | 2024-03-05 | Apple Inc. | Media control for screensavers on an electronic device |
US11163428B1 (en) * | 2020-06-15 | 2021-11-02 | Microsoft Technology Licensing, Llc | Displaying a hover graphic with a dynamic time delay |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4386346A (en) * | 1981-03-27 | 1983-05-31 | International Business Machines Corporation | Cursor controller |
JPH0668758B2 (en) * | 1986-01-07 | 1994-08-31 | 株式会社日立製作所 | Cursor control method and three-dimensional graphic display device |
US4812819A (en) * | 1987-04-13 | 1989-03-14 | The United States Of America As Represented By The United States Department Of Energy | Functional relationship-based alarm processing system |
JPH01251218A (en) * | 1988-03-31 | 1989-10-06 | Nec Corp | Graphic processor |
US4931783A (en) * | 1988-07-26 | 1990-06-05 | Apple Computer, Inc. | Method and apparatus for removable menu window |
US5012231A (en) * | 1988-12-20 | 1991-04-30 | Golemics, Inc. | Method and apparatus for cursor motion having variable response |
JPH03292524A (en) * | 1990-04-11 | 1991-12-24 | Oki Electric Ind Co Ltd | Cursor shift system |
US5230059A (en) * | 1990-07-16 | 1993-07-20 | Kraft Systems, Inc. | Software - configurable adaptive computer interface |
US5469191A (en) * | 1991-01-09 | 1995-11-21 | Smith, Iii; Jay | Cursor control system |
JPH0527906A (en) * | 1991-07-24 | 1993-02-05 | Matsushita Electric Ind Co Ltd | Graphic selector |
CA2077324C (en) * | 1991-10-07 | 1997-06-24 | Michael R. Campanelli | Image editing system and method having improved automatic object selection |
WO1993022758A1 (en) * | 1992-05-07 | 1993-11-11 | Kensington Microware Limited | Method and apparatus for cursor positioning |
US5508717A (en) * | 1992-07-28 | 1996-04-16 | Sony Corporation | Computer pointing device with dynamic sensitivity |
US5510811A (en) * | 1992-11-25 | 1996-04-23 | Microsoft Corporation | Apparatus and method for controlling cursor movement |
CA2140164A1 (en) * | 1994-01-27 | 1995-07-28 | Kenneth R. Robertson | System and method for computer cursor control |
US5929840A (en) * | 1994-03-04 | 1999-07-27 | Microsoft Corporation | System and method for computer cursor control |
US5808604A (en) * | 1994-03-10 | 1998-09-15 | Microsoft Corporation | Apparatus and method for automatically positioning a cursor on a control |
TW288129B (en) * | 1995-04-28 | 1996-10-11 | Philips Electronics Nv | |
JP2936324B2 (en) * | 1995-09-27 | 1999-08-23 | 小野薬品工業株式会社 | Sulfonamide derivative |
-
1996
- 1996-11-12 US US08/788,598 patent/US5870079A/en not_active Expired - Fee Related
-
1997
- 1997-11-12 WO PCT/US1997/020833 patent/WO1998021645A1/en active Application Filing
- 1997-11-12 CA CA002309689A patent/CA2309689A1/en not_active Abandoned
- 1997-11-12 AU AU54387/98A patent/AU5438798A/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO1998021645A1 (en) | 1998-05-22 |
US5870079A (en) | 1999-02-09 |
AU5438798A (en) | 1998-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2309689A1 (en) | Computer input device and controller therefor | |
EP0938040B1 (en) | An apparatus for manipulating an object displayed on a display device | |
US7770135B2 (en) | Tracking menus, system and method | |
EP0677803B1 (en) | A method and system for facilitating the selection of icons | |
EP0965079B1 (en) | User interface with compound cursor | |
US5568603A (en) | Method and system for transparent mode switching between two different interfaces | |
EP0992878B1 (en) | Apparatus and method for achieving absolute and relative positioning of a graphics cursor | |
US6954899B1 (en) | Human-computer interface including haptically controlled interactions | |
US5821930A (en) | Method and system for generating a working window in a computer system | |
US6466199B2 (en) | Method for moving a pointing cursor | |
KR101892630B1 (en) | Touch display apparatus and method for displaying thereof | |
US5398044A (en) | Method of and an arrangement for controlling the cursor movement on a graphical display | |
KR100502221B1 (en) | Cursor control with user feedback mechanism | |
US5396590A (en) | Non-modal method and apparatus for manipulating graphical objects | |
US9335913B2 (en) | Cross slide gesture | |
JP2698045B2 (en) | Two-dimensional scrolling method and apparatus | |
US5568604A (en) | Method and system for generating a working window in a computer system | |
JPH06259193A (en) | Computer input device | |
AU4653289A (en) | Squeezable control device for computer | |
US5793370A (en) | Display apparatus for tossing windows | |
JPH02242323A (en) | Method and device for selecting pop-up menu | |
JPH0623946B2 (en) | Touch screen control method and control panel device | |
JP4539325B2 (en) | Window display control method and program | |
JPH06149462A (en) | Information processor and input controller | |
JPH09198223A (en) | Computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Dead |