Abstract:
A three-dimensional computer cursor is controlled by a 3D mouse using the spherical coordinate system, where the computer cursor can move in lines, curves, or geometrical grids in 2D or 3D. The 3D mouse enables the user to interact with the computer games physically by moving the user&#39;s hand as in real games where the 3D mouse provides the computer system with the details of the hand movement&#39;s rotation. The 3D mouse can be in the shape of a ring where the user can put it on his/her finger to operate the computer. A 3D trackball is also presented to enable the user to move, navigate, or edit in 3D. The invention enables the user to move the computer cursor using the spherical, polar, cylindrical, or Cartesian coordinate system to facilitate using many applications such as the Microsoft Windows Vista, Google Earth, and CAD/CAM/CAE software.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    This application is a Continuation-in-Part of co-pending International Applications No. PCT/EG2006/000025, filed Jul. [[7]]6, 2006, and No. PCT/EG2006/000036, filed Oct. 4, 2006, and U.S. patent application Ser. No. 11/564,882, filed Nov. 30, 2006. 
     
     BACKGROUND 
       [0002]    The computer cursor is manipulated by the mouse to move on the computer display in 2D and/or 3D using the Cartesian coordinate system. In the last few years, new versions of Windows systems, Web-based applications, and desktop software have dramatically changed to integrate the use of 2D and 3D together. Microsoft Windows Vista, Internet world mapping such as Google Earth, and CAD/CAM/CAE software are examples of such applications, where the traditional computer cursor, mouse, and input method which utilize the Cartesian coordinate system are no longer suitable for such new applications as they used to be before. 
         [0003]    For example, the traditional computer cursor has no accurate, logical control of the exact angle or distance of movement in 2D; it is always moved in multiple, discrete steps until it reaches its target on the computer display, and with 3D applications, the user loses the sense of orientation and can only see a deceiving projection of the cursor&#39;s position on the computer screen. 
         [0004]    The traditional mouse does not help much in 3D applications, although there are some current products which have attempted to solve the mouse&#39;s limitations in 3D, but such products were far away from being practical and intuitive, for example, the company 3Dconnexion offers an input device to be used by the user&#39;s one hand while moving the mouse with the other hand. Another example is the company Sandio Technology which recently introduced a 3D mouse that has 12 positions to press on instead of moving the mouse. Both of the aforementioned products&#39; configurations confuse the user, relegating the mouse into a complicated input device. 
         [0005]    The traditional computer method utilizes the Cartesian coordinate system to move the cursor on the computer display, and also to provide positional information by the mouse&#39;s movement to the computer system, where this system has many disadvantages when used with the new 3D applications. For example, it is hard to accurately move an object on the computer display in 3D if the movement is not parallel to the x, y, and z-axis, and it is difficult to navigate on the computer display to a point that is not defined with x, y, and z coordinates. 
         [0006]    The present invention introduces a solution that eliminates the counter-intuitiveness and, in some cases, the complete failure of the traditional computer cursor, mouse, and method in dealing with the new 3D Windows system, 3D Internet and software applications. It introduces an innovative cursor, mouse, and method that together provide the computer user with a complete integrated tool to operate these new applications effectively and efficiently, saving both the user&#39;s time and effort. 
         [0007]    For example, the present cursor gives the user the ability to control the movement angles and distance of the cursor on the computer display to be in lines, curves, or circles. This gives the user a perfect sense of orientation in 2D and 3D and helps achieve tasks that needed complicated software, consequently, reducing the user&#39;s time and effort in targeting or moving on the computer display. 
         [0008]    The present 3D mouse enables the user to control the new applications of 3D Windows systems, Internet, and desktop software in a simple and fast way without moving the mouse or aligning the mouse or the user&#39;s hand in any specific direction, or even using a mousepad or any specific surface to support the mouse for proper function. The user can stand, lay supine, or even walk around using a wireless model of this 3D mouse. Moreover, the user can hold this 3D mouse with one hand in gaming situations as if it is a table tennis racket, for example, where the simulation for such a user&#39;s hand movement is provided to the computer system to be used in gaming or training purposes. In addition to this, the present 3D mouse can be in the shape of a ring where the user can put it on his/her finger operating the computer during business presentations or while traveling as a passenger in a car or plane. 
         [0009]    The present method utilizes the spherical coordinate system instead of the Cartesian coordinate system, giving the computer user full control to move, navigate, or edit in 3D, without the use of the keyboard. The three dimensional virtual environment on the computer display becomes accessible to the user and void of having screen projection illusions as in current cases when using the Cartesian coordinate system. 
         [0010]    Overall, some examples of the uses and applications of the present invention will be described subsequently. However, it is important to note that if the present computer cursor, 3D mouse, and method become commercially available; it is believed that developers of current user-friendly software systems would come up with innumerable additional uses and applications. 
       SUMMARY 
       [0011]    In the spherical coordinate system as shown in  FIG. 1 , a point P is represented by a tuple of three components: ρ, θ, and φ. The component ρ is the distance between the point P and the origin, θ is the angle between the positive x-axis and the line from the origin to the point P projected onto the xy-plane, and φ is the angle between the xy-plane and the line from the origin to the point P. 
         [0012]      FIG. 2  illustrates the present computer cursor which is named the “Spherical Cursor” and is comprised of: a dotted line  100  serving as a ray reaching all possible target points of the cursor&#39;s direction on the computer display; a solid line  110  that represents the radial distal movement length of the cursor ρ, in its determined direction on the dotted line from a starting point  120  to a targeted point  130 ; a horizontal circular portion  140  that gives the feeling of the xy-plane and indicates the value of θ; and a vertical circular portion  150  that gives the feeling of the cursor rotation in the third dimension, perpendicular on the xy-plane and indicating the value of φ. 
         [0013]      FIG. 3  illustrates the present 3D mouse that is comprised of three scroll wheels numbered  160 ,  170 , and  180 . The first scroll wheel  160  is on the left side of the 3D mouse and has its axis perpendicular to the mousepad surface. It can be rotated horizontally, both clockwise and counterclockwise, by the thumb finger to provide, respectively, immediate negative or positive input for θ to the computer system. The second scroll wheel  170  is on the right side of the 3D mouse and has its axis parallel to the 3D mousepad surface and perpendicular to the axis of the first scroll wheel. It can be rotated vertically, both clockwise and counterclockwise, by the middle or ring finger to provide, respectively, immediate negative or positive input for φ to the computer system. The third scroll wheel  180  is on the top side of the 3D mouse and has its axis parallel to the mousepad surface, perpendicular to the axes of the first and second scroll wheels. It can be rotated both vertically up or down by the index finger to provide, respectively, immediate positive or negative input for ρ to the computer system. 
         [0014]    To operate this 3D mouse, the user rotates the first scroll wheel  160  horizontally to determine θ, the horizontal rotation of the spherical cursor in the xy-plane, then rotates the second scroll wheel  170  vertically to determine φ, the vertical rotation of the spherical cursor perpendicular to the xy-plane, and rotates the third scroll wheel  180  to determine ρ, the radial distal movement of the spherical cursor in three dimensions. In case of working in 2D, there is no need to use the second scroll wheel  170  since the third dimension does not exist. In such cases the spherical coordinate system will change into a polar coordinate system in two dimensions. However, the positions of the three scroll wheels can be different from  FIG. 3 , for example, the first scroll wheel  160  can be on the right side of the 3D mouse and the second scroll wheel can be on the left side of the 3D mouse, or both of them can be on one side of the 3D mouse. 
         [0015]    As a demonstration of some uses and applications of the present invention, the following figures show some innovative examples that are difficult to be achieved using the traditional computer cursor, mouse, or method: 
         [0016]      FIG. 4  illustrates an example for a three dimensional interface consisting of three parallel planes where in such a case, rotating the spherical cursor in three dimensions by providing the input values of θ and φ to the computer system is enough to determine the intersection points of the spherical cursor direction or dotted line  100  and the three planes. As long as the spherical cursor changes its rotation or direction, the computer system indicates the point of intersection of each new rotation or direction, where there is no need to provide input for ρ to the computer system as will be described subsequently. Based on this concept, to click on any icon, menu, or the like on any of the three dimensional interfaces, the user directs the spherical cursor to the needed target then clicks the enter button of the mouse, without the need to move the spherical cursor to such needed target. 
         [0017]      FIG. 5  shows a spherical cursor movement among a plurality of non-parallel planes in three dimensions where it is possible to target any of such planes without the need to provide the input of ρ to the computer system as mentioned previously. However, in this example, the start point of the spherical cursor on the computer display changes from a start point out of the illustrated planes to a start point on some of said planes. 
         [0018]      FIG. 6  shows another innovative application for the spherical cursor movement on the computer display where a three dimensional interface consists of three planes, E 1 , E 2 , and E 3 , and the spherical cursor which can target any of these three planes or move from one to another. In addition to this, the spherical cursor can move on any one of these interfaces or planes without the need to provide input for φ to the computer system. That is achieved by having the spherical cursor interpret any specific plane that it will move on as an xy-plane. In other words, to move on a specific plane, the user provides only immediate input for θ and ρ to the computer system. Once the user needs the spherical cursor to move to another plane or quit movement on a specific plane, then s/he provides immediate input for φ to the computer system. Once the user does so, the computer system recognizes the user&#39;s need to move to another plane. In other words, to move on any plane, the polar coordinate system is used where there is no input of φ; to move from one plane to another, the spherical coordinate system is used where φ is provided with θ and ρ. 
         [0019]      FIG. 7  shows a spherical cursor movement on plane E 3  which is a part of said interface of  FIG. 6  where it is simple for the user to move the spherical cursor on this plane as described previously. This solution is appropriate for use with three dimensional interfaces such as Microsoft Windows Vista; where using the Cartesian coordinate system or the conventional computer cursor is not robust enough of a tool to target any of the different interface parts. Furthermore, moving on any plane or, for example, part of said interface that is not parallel to the x, y, and z-axis is impossible when using the traditional mouse movement on a surface by means of the Cartesian coordinate system. In such cases, the direction of the mouse movement on a surface simply cannot match the different directions of different planes and/or interfaces. 
         [0020]      FIG. 8  shows an innovative application for navigation in three dimensions for world mapping applications such as Google Earth or NASA&#39;s open-source World Wind. Here, as will be described subsequently, the spherical cursor moves in curves in 3D to target a specific spot directly in one step on the world map as opposed to what is currently required: rotating the world map horizontally and vertically until getting the targeted position in the center of the computer display then zooming in to it. The present method reduces the number of required steps and the amount of time spent by the user to deal with such applications. 
         [0021]      FIG. 9  shows another innovative application to control the speed of the spherical cursor when moving in virtual reality environments where the computer system can calculate the distance between the starting point  120  of the spherical cursor and any three dimensional object on the computer display that is in the direction of the spherical cursor&#39;s path or intersected with the dotted line  110 . The computer system then adjusts the speed of the spherical cursor or camera movement when targeting such objects, especially if there are huge variations of distances between objects as in the case of 3D world mapping or modeling. 
         [0022]      FIG. 10  shows an innovative method to walk though a three dimensional environment such as a virtual reality model for a building where the spherical cursor enables the computer system to detect the openings of the buildings as doors or windows by comparing the different calculated values of ρ of the spherical cursor&#39;s direction to the same plane of the building. The openings are located where there are relatively large changes in the ρ values in the same plane. Such applications turn the spherical cursor into a “smart cursor” that detects the IDs of the different parts of the 3D objects on the computer display and accordingly are able to move the virtual camera according to a pre-programmed movement function related to the objects&#39; IDs. 
         [0023]      FIG. 11  illustrates the possibility of moving different 3D objects in three dimensions on the computer display using the spherical cursor by targeting the needed object to be moved, dragging it, and then targeting the new position for this object to relocate it. It is very difficult for the conventional computer cursor to achieve such tasks in three dimensions without the use of the computer keyboard to enter the numerical values of the x, y, and z coordinates for the new position or location of the moved object on the computer display. 
         [0024]      FIG. 12  illustrates a three dimensional object where the computer user can pick up any point of said object and move it in three dimensions using the movement of the spherical cursor, where, as shown in this figure, a point P 1  is dragged in a curvature movement to a new position, and point P 2  is dragged linearly to a new position in 3D. This example illustrates the ease of editing in three dimensions using the present invention. 
         [0025]      FIG. 13  illustrates an example for estimating the distance between two points in a three dimensional virtual environment on the computer display using the spherical cursor, where in this example, a distance between two points such as P 1  and P 2  is calculated by targeting the first point P 1  by the spherical cursor then targeting P 2 . The computer system then calculates the distance between P 1  and P 2  by knowing the distance between P 0  and P 1 , and P 0  and P 2 , in addition to the angle between the two lines P 0 -P 1  and P 0 -P 2 , where P 0  is the starting or base point of the spherical cursor as shown in the figure. 
         [0026]    One advantage of the present 3D mouse is in the realm of interactive 3D graphics. The scroll wheels&#39; rotations are directly translated into changes in the virtual camera&#39;s orientation. For example, in some games, the present 3D mouse can control the direction in which the player&#39;s “head” faces: rotating the first scroll wheel  160  horizontally clockwise or counterclockwise will cause the player to turn around in those respective directions. Rotating the second scroll wheel  170  up or down will cause the player to look “up” or “down”. Rotating the third scroll wheel  180  forward or backward will cause the player to move “forward” or “backward.” Generally, in games that need aiming/targeting or shooting in three-dimensions, the present 3D mouse is a perfect tool. 
         [0027]    Another application for the present 3D mouse is in controlling virtual space vehicles such as airplanes or rockets. Rotating the first scroll wheel  160  controls the turning of the vehicle both left and right (yawing); rotating the second scroll wheel  170  controls the titling of the vehicle side-to-side (rolling); and rotating the third scroll wheel  180  controls the tilting of the vehicle both up and down (pitching). All such controls are achieved using only the present 3D mouse and require the use of only one hand. 
         [0028]    One major application that is completely unique to the present invention is the use of the 3D mouse in gaming and educational training. The user can hold the 3D mouse in one hand as a virtual gaming apparatus such as a tennis racket, golf club, billiard cue, or the like, and move his/her hand naturally as in the real sport. In such cases, the present 3D mouse provides immediate input to the computer system so as to simulate the exact hand motion(s) of the user. This simulation enables the user to interact virtually with the computer with real free-hand motions, as opposed to the traditional mouse movements on a surface, or pressing buttons on game controllers. 
         [0029]    Overall, it is important to mention that the present invention or method not only provides movements using the spherical coordinate system, but also the polar, cylindrical, and Cartesian coordinate systems, in addition to providing the computer system with motion having six degrees of freedom (6 DOF) without the need of a supplementary input device such as a keyboard and its like. 
     
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0030]      FIG. 1  is a spherical coordinate system where a point P is represented by a tuple of three components: θ, φ, and ρ. 
           [0031]      FIG. 2  is a spherical cursor which is a new shape for the computer cursor to move in two and/or three dimensions on the computer display. 
           [0032]      FIG. 3  is a 3D mouse comprised of a first scroll wheel  160 , second scroll wheel  170 , and third scroll wheel  180 , in addition to the regular mouse components. 
           [0033]      FIGS. 4 to 13  display various uses and applications of the spherical cursor utilizing the spherical coordinate system. 
           [0034]      FIG. 14  is a ring mouse comprised of a first scroll wheel  190 , second scroll wheel  200 , third scroll wheel  210 , and a void  220  to pass the user&#39;s finger through. 
           [0035]      FIG. 15.1  is a 3D trackball comprised of a ball  230 , base  240 , first button  250 , second button  260 , third button  270 , fourth button  280 , and optical sensor  290 . 
           [0036]      FIG. 15.2  is a top view for the 3D trackball that indicates dividing the ball into three sections: first section  300 , second section  310 , and third section  320 . 
           [0037]      FIG. 16.1  is a horizontal tilt wheel comprised of a tilt wheel  330 , left button  340 , and right button  350 . 
           [0038]      FIG. 16.2  is a bottom view for the horizontal tilt wheel illustrating a first button  360 , second button  370 , third button  380 , and fourth button  390 , where these buttons are beneath the horizontal tilt wheel to detect its tilting direction. 
           [0039]      FIG. 17  is an alternative for the 3D mouse comprised of a first scroll wheel  400  and second scroll wheel  410 , in addition to the regular mouse components. 
           [0040]      FIG. 18  is an alternative for the 3D mouse comprised of a first selection switch  420  and second selection switch  430 , in addition to the regular mouse components. 
           [0041]      FIG. 19  is an alternative for the 3D mouse comprised of a tilt wheel on the top side of the 3D mouse, in addition to the regular mouse components. 
           [0042]      FIG. 20  is an alternative for the 3D mouse comprised of a first scroll wheel  440 , second scroll wheel  450 , and two touchpad surfaces  460  and  470 , in addition to the regular mouse components. 
           [0043]      FIG. 21  is an alternative for the 3D mouse comprised of a first scroll wheel  480 , second scroll wheel  490 , and two pressure sensitive buttons  500  and  510 , in addition to the regular mouse components. 
           [0044]      FIG. 22  is the finger&#39;s directions on a touchpad surface to control the movement of the spherical cursor in three dimensions on the computer display. 
           [0045]      FIG. 23.1  is a mouse movement on a surface from point  1  to  2 , from point  2  to  3 , and from point  3  to  4 . 
           [0046]      FIG. 23.2  is the spherical cursor movement in 2D on the computer display in accordance to the mouse movement of  FIG. 23.1 . 
           [0047]      FIG. 24.1  is a mouse movement on a surface from point  1  to  2 , from point  2  to  4 , and from point  4  to  3 . 
           [0048]      FIG. 24.2  is the spherical cursor movement in 2D on the computer display in accordance to the mouse movement of  FIG. 24.1 . 
           [0049]      FIG. 25.1  is the order of providing the input for θ, φ, and ρ to the computer system to move the spherical cursor in lines. 
           [0050]      FIG. 25.2  is the order of providing the input for θ, φ, and ρ to the computer system to move the spherical cursor in curves. 
           [0051]      FIGS. 26.1  to  27 . 4  are examples for moving the spherical cursor in the xy-plane on the computer display. 
           [0052]      FIG. 28  is three examples for the spherical cursor movement in two dimensions on the computer display. 
           [0053]      FIGS. 29.1  to  29 . 3  are examples for moving the spherical cursor in grids in two dimensions on the computer display. 
           [0054]      FIGS. 30 and 31  are alternatives for the spherical cursor movement in curves or semi-circles in 2D on the computer display. 
           [0055]      FIGS. 32.1  to  33 . 3  are examples for moving the spherical cursor in the xz-plane on the computer display. 
           [0056]      FIGS. 34.1  to  34 . 3  are examples for moving the spherical cursor in the yz-plane on the computer display. 
           [0057]      FIGS. 35.1  to  35 . 3  are examples for moving the spherical cursor in three dimensions on the computer display in different planes than the xy, xz, or yz-plane. 
           [0058]      FIGS. 36.1  and  36 . 2  are two examples for moving the spherical cursor in three dimensional paths on the computer display. 
           [0059]      FIG. 37  shows alternatives for the spherical cursor curvature movement from P 1  to P 2  in three dimensions on the computer display. 
           [0060]      FIG. 38  is the spherical cursor movement drawing a three-dimensional shape on the computer display in seven steps. 
           [0061]      FIG. 39  is the spherical cursor targeting a three-dimensional sphere on the computer display. 
           [0062]      FIG. 40.1  is a table illustrating the 3D trackball&#39;s rotation that provides the computer system with a movement along the x, y, and z-axis. 
           [0063]      FIG. 40.2  is a table illustrating the 3D trackball&#39;s rotation that provides the computer system with a rotation about the x, y, and z-axis. 
       
    
    
     DETAILED DESCRIPTION 
       [0064]    As described previously,  FIG. 3  illustrated a 3D mouse comprised of three scroll wheels  160 ,  170  and  180  to provide, respectively, the inputs of θ, φ, and ρ to the computer system, where this simple configuration eases the control of the spherical cursor. For example, the user can feel the spherical cursor&#39;s horizontal or vertical rotation by rotating the first wheel horizontally or the second scroll wheel vertically. Also the user can feel the spherical cursor&#39;s forward or backward movement by rotating the third scroll wheel forward or backward. The user has full control over the speed of the spherical cursor&#39;s rotation or movement with the touch of his/her fingers to the scroll wheels; this type of control is very important in many applications especially those in gaming and virtual reality. In addition to this, the user can feel the value of the rotation, where one complete or partial rotation of the scroll wheel rotates the spherical cursor in like fashion. 
         [0065]    As mentioned previously, the 3D mouse can be held with the user&#39;s hand where s/he moves his/her hand simulating the actual movements used in playing sports/games such as tennis, billiards, golf, or serving, where the 3D mouse provides input to the computer system that simulates the motion of the user&#39;s hand. This function is based on gripping the 3D mouse in one hand, while holding the first scroll wheel  160  with the thumb finger, and holding the second scroll wheel  170  with the middle or index finger. When the user rotates his/her hand from left to right, s/he rotates the first scroll wheel  160  and the second scroll wheel  170  in the direction of his/her hand&#39;s rotation, where in this case the first scroll wheel  160  will be horizontally rotated clockwise (related to its axis), and the second scroll wheel will be vertically rotated clockwise (related to its axis). In cases where the user rotates his/her hand from right to left, then s/he horizontally rotates the first scroll wheel  160  counterclockwise (related to its axis), and vertically rotates the second scroll wheel counterclockwise (related to its axis); where the values of the scroll wheel&#39;s rotation is relative to the value of the user&#39;s hand rotation. 
         [0066]    It is important to note that the human hand&#39;s joints are spherical joints and their rotation in three dimensions can be analyzed in two angles: θ and φ; these two angles are provided to the computer system by the first and second scroll wheels of the 3D mouse. Also, the motion of the thumb and middle or index finger while rotating the user&#39;s hand from left to right or vice versa is by nature, as mentioned previously, horizontally or vertically, clockwise, or counterclockwise. However, in this example the input of θ and φ are provided to the computer system in the same time, where this possibility is available to the user when s/he uses two or three scroll wheels of the present 3D mouse in the same time. 
         [0067]      FIG. 14  illustrates the present ring mouse that functions as a 3D mouse. This ring mouse can be put on the index or middle finger and be operated by the thumb finger, where the first scroll wheel  190  can be rotated horizontally to provide immediate input for θ, the second scroll wheel  200  can be rotated vertically to provide immediate input for φ, and the third scroll wheel  210  can be rotated up or down to provide immediate input for ρ to the computer system. Also, the first scroll wheel  190  can be pressed down to function as the regular mouse&#39;s left button, and the second scroll wheel  200  can be pressed laterally to function as the regular mouse&#39;s right button. The user&#39;s finger goes through the ring void  220  which is in the direction of the axis of the third scroll wheel  210 . 
         [0068]    The ring mouse can take another simple shape wherein the first scroll wheel  190 , second scroll wheel  200 , and third scroll wheel  210  can be attached to three different faces of a cube, where said three different faces share one corner of said cube. The cube has an appendage that is attached to it where said appendage can easily be wrapped on the user&#39;s finger with Velcro-like fabric that allows it to be “one-size-fits-all”. Having the cube without any penetration of the user&#39;s finger is an advantage that makes the sensors that detect the rotation of the three scroll wheels fit simply inside the cube. 
         [0069]    The ring mouse is a perfect tool to control the spherical cursor when the user is driving a car and needs to use the GPS, or while using fingers/hands in typing on the computer keyboard and needing to use the mouse constantly during typing. It is also a perfect tool for gamers when more than one player can share the same game on the same computer without the need for a surface to move the mice, in addition to the ease of holding just a ring instead of the other input devices or game controllers. 
         [0070]    Another input device that controls the spherical cursor in three dimensions is the present 3D trackball.  FIG. 15.1  illustrates this 3D trackball which is comprised of a ball  230  and a base  240  to hold said ball. This base has four arms and on the tip of each of them is a button: a first button  250 ; second button  260 ; third button  270 ; and fourth button  280 . In addition to this, there is an optical sensor  290  in the base beneath the ball to detect its rotation.  FIG. 15.2  illustrates a top view for the present 3D trackball which shows that the ball  230  is divided into three sections: first section  300 ; second section  310 ; and third section  320 . To use the 3D trackball to provide the input of θ to the computer system, the user rotates the ball horizontally from the first section  300  by his/her thumb finger. To provide the input of φ, the user rotates the ball vertically from the second section  310  by the middle or ring finger. To provide the input of ρ, the user rotates the ball inwards/backward from the third section  320  by the index or middle finger. 
         [0071]    There is a gap between the ball  230  and the four buttons  250 ,  260 ,  270 , and  280 . This gap helps the computer system to identify which section of the ball is touched by the user&#39;s finger. For example, when the user rotates the first section  300  using the thumb finger, the ball is moved slightly from left to right pressing on the first button  250  and the second button  260  during its rotation. When the user rotates the second section  310  with the middle or ring finger, the ball is moved slightly from right to left pressing on the third button  270  and the fourth button  280  during its rotation. When the user rotates the third section  320  forward with the index or middle finger, the ball is moved slightly forward pressing on the first button  250  and the fourth button  280 ; if the rotation is backward, then the ball is moved slightly backward pressing on the second button  260  and the third button  270 . 
         [0072]    The optical sensor  290  is a regular mouse optical sensor but upside down. It detects each different rotational direction of the ball  230 . For example, when providing the input of θ to the computer system as previously described, the optical sensor detects a clockwise or counterclockwise rotation of the bottom of the ball. When providing the input of φ to the computer system, the optical sensor detects a movement from left to right or vice versa. When providing the input of ρ to the computer system, the optical sensor detects a forward or backward movement. Based on the movement direction detected by the optical sensor and the IDs of the two buttons that are pressed by the ball during its rotation, the computer system identifies which section of the ball is rotated and accordingly which input of θ, φ, or ρ is meant by the 3D trackball&#39;s rotation. 
         [0073]      FIG. 16.1  illustrates the present horizontal tilt wheel which is another computer input device to provide the input for θ, φ, and ρ to the computer system. It is comprised of a horizontal scroll wheel  330  that can be horizontally rotated clockwise or counterclockwise about its vertical axis to provide, respectively, immediate negative or positive input for θ to the computer system. A left button  340  functions as a regular mouse left button, and a right button  350  functions as a regular mouse right button.  FIG. 16.2  is a bottom view for said horizontal tilt scroll wheel; it illustrates a first button  360 , second button  370 , third button  380 , and fourth button  390 , respectively, in the East, West, North, and South bottom directions of said horizontal tilt wheel. The present horizontal tilt wheel can be tilted or pressed vertically by the user&#39;s finger from its East, West, North, and South boundaries to press, respectively, on first button  360 , second button  370 , third button  380 , or fourth button  390  to provide immediate, negative input for φ, positive input for φ, positive input for ρ, or negative input for ρ, to the computer system. 
         [0074]    The unique advantage about said horizontal scroll wheel is its small size and minimal requirements of space for proper operation. These minimal requirements make it suitable to be incorporated onto the top of any computer mouse, keyboard, laptop, or even in a ring to be used as a ring mouse. 
         [0075]      FIG. 17  illustrates an alternative for the present 3D mouse of  FIG. 3 . This 3D mouse alternative is comprised of two scroll wheels instead of three, where the first scroll wheel  400  on the left side of the 3D mouse is rotated horizontally to provide immediate input for θ, the second scroll wheel  410  on the top side of the 3D mouse is rotated up or down to provide immediate input for φ, and this 3D mouse is moved (similar to the regular mouse movement on a surface) to provide immediate input for ρ. In this case, the x and y values of the regular mouse movement are converted to only one value of ρ according to the following equation: 
         [0000]      ρ=( x   2   +y   2 ) 0.5    
         [0076]    This is in cases where the movement of this 3D mouse is inwards/closer to the direction of the dotted line  100  of the spherical cursor, and, 
         [0000]      ρ=−( x   2   +y   2 ) 0.5    
         [0077]    This is in cases where the movement of this 3D mouse is inwards/closer to the opposite direction of the dotted line  100  of the spherical cursor. 
         [0078]      FIG. 18  illustrates another 3D mouse that looks like a conventional mouse in addition to two selection switches  420 , and  430  on the left side of this 3D mouse. Wherein pressing the first selection switch  420  by the thumb finger one time to be “on” and another time to be “off”, and when moving this 3D mouse while the first selection switch  420  is “on”, then the immediate input for θ is provided. Also pressing the second selection switch  430  by the thumb finger one time to be “on” and another time to be “off” and when moving this 3D mouse while the second selection switch  430  is “on”, then the immediate input for φ is provided. Also, moving this 3D mouse after pressing twice on any of the selection switches provides immediate input for ρ. However, all the movements of this 3D mouse for the inputs of θ, φ, and ρ convert the x and y movement values to only one value, according to the following equations: 
         [0000]      θ=( x   2   +y   2 ) 0.5    
         [0000]      φ=( x   2   +y   2 ) 0.5    
         [0000]      ρ=( x   2   +y   2 ) 0.5    
         [0079]    Whereas this one value is positive if the movement angle of the present 3D mouse is equal to or greater than zero and less than 180 degrees, and is negative if the movement angle of the present 3D mouse is equal to or greater than 180 degrees and less than 360 degrees. Also, this one value is positive if the movement of the present 3D mouse is forward and is negative if the movement of the present 3D mouse is backward. 
         [0080]      FIG. 19  illustrates a 3D mouse that uses a tilt wheel that tilts left and right to provide immediate input for θ, and rolls up and down to provide immediate input for φ, in addition to moving the mouse on a surface to provide immediate input for ρ as described previously for the mouse of  FIG. 17 . 
         [0081]      FIG. 20  illustrates a 3D mouse comprised of a horizontal scroll wheel  440  that rotates clockwise or counterclockwise to provide immediate input for θ, and vertical scroll wheel  450  that rotates up or down to provide immediate input for φ, where the input of ρ is provided by moving the user&#39;s finger on touchpad surfaces  460  and  470  wherein the finger movement inwards/closer to the direction of the dotted line  100  of the spherical cursor provides positive input for ρ, or the finger movement inwards/closer to the opposite direction of the dotted line  100  of the spherical cursor provides negative input for ρ. 
         [0082]      FIG. 21  illustrates a 3D mouse comprised of a horizontal scroll wheel  480  that rotates clockwise or counterclockwise to provide immediate input of θ, vertical scroll wheel  490  that rotates “up or down” to provide immediate input of φ, and two pressure sensitive buttons  500  and  510  that detect the user&#39;s finger pressing to provide, respectively, positive or negative input for ρ to the computer system. 
         [0083]    In the previous 3D mouse in  FIG. 21 , it is possible to eliminate said two pressure sensitive buttons  500  and  510 , and make said two scroll wheels  480  and  490  provide this function in addition to their rotation to provide immediate input for θ and φ. In this case, pressing the horizontal scroll wheel  480  laterally from left to right by the thumb finger provides immediate positive input for ρ, and pressing the vertical scroll wheel  490  vertically from up to down by the index or middle finger provides immediate negative input for ρ to the computer system. 
         [0084]    All the previous described devices provide the input for θ, and φ in two steps, step by step, however it is possible to provide the input for θ and φ in one step using the traditional trackball that is manipulated with the palm or the fingers of the user&#39;s hand. Such manipulation can provide immediate input for θ, and φ one time, and in order to provide the immediate input for ρ, the user can press laterally on the left side of this trackball to provide the positive input for ρ, or press vertically on the top side of this trackball to provide the negative input for ρ. In this case there are two sensors: the first sensor is on the right of the trackball to detect the lateral pressing, and the second sensor is beneath the trackball to detect its vertical pressing. 
         [0085]    Generally, the use of the present spherical cursor and the spherical coordinate system can be utilized using the traditional input devices such as mouse, touchpad, or pointing stick; the following are some examples for such utilizations: 
         [0086]    The regular mouse&#39;s movement combined with the top scroll wheel of the regular mouse are sufficient to provide innovative applications for rotating or directing the spherical cursor on the computer display. The regular mouse is moved on a pad or surface in a manner of horizontal radial scanning, to horizontally control the rotation of the dotted line  100  of the spherical cursor on the computer display, which means providing the input for θ to the computer system. The top scroll wheel can then be rotated up or down in a manner of vertical radial scanning to vertically control the rotation of the dotted line  100  of the spherical cursor, which means providing the input for φ to the computer system, where such horizontal and vertical scanning convert the spherical cursor into a 3D pointer reaching all points or spots in 3D on the computer display with the use of the traditional mouse and scroll wheel. 
         [0087]      FIG. 22  shows a different alternative for providing immediate input for θ, φ, and ρ, using the movement of the user&#39;s finger on a touchpad surface that senses the direction of the finger&#39;s motion. Wherein the circular counterclockwise movement  520  provides positive input for θ and the circular clockwise movement  530  provides negative input for θ. The vertical movement  540  from down to up provides positive input for φ, and the vertical movement  550  from up to down provides negative input for φ. Also, the horizontal movement  560  from left to right provides positive input for ρ, and the horizontal movement  570  from right to left provides negative input for ρ. 
         [0088]    The pointing stick can provide the inputs of θ, φ, and ρ to the computer system by moving the finger on the pointing stick from “left” to “right” to provide positive input for θ, and from “right” to “left” to provide negative input for θ. Moving the finger on the pointing stick from “down” to “up” to provide positive input for φ, and from “up” to “down” to provide negative input for φ. Moving the finger on the pointing stick inwards/closer to the direction of the dotted line  100  of the spherical cursor to provide positive input for ρ, and inwards/closer to the opposite direction of the dotted line  100  of the spherical cursor to provide negative input for ρ. Such a pointing stick can be incorporated on the top side of a regular mouse or a laptop or desktop keyboard. 
         [0089]    The directional movements of the previous pointing stick can be used with the joystick too, where in this case; instead of moving the finger on the pointing stick, the user can tilt the joystick in the same direction as in the previous example of the pointing stick except that the left and right movements can be replaced with a clockwise or counterclockwise circular movement to provide, respectively, negative and positive input for θ. 
         [0090]    In case of moving the spherical cursor in 2D on the computer display the polar coordinate system will be utilized instead of the spherical coordinate system. In such cases the two inputs of the polar coordinate system can be provided to the computer system with the regular mouse&#39;s movements on a surface, whereas these movements can provide an input for θ and ρ consecutively. The first step for the user is to provide the input for θ by moving the mouse a small distance in a specific direction and, accordingly, the dotted line  100  of the spherical cursor is manipulated to the same direction of movement on the computer screen. If the first mouse movement is not accurate enough to align the dotted line to the exact direction, then the user moves the mouse again a small distance to adjust the dotted line direction. As long as the mouse movement is less than a specific distance value, the computer system considers the mouse&#39;s movement as an input for θ. After the dotted line of the spherical cursor overlaps with its targeted position which could be an icon, menu, or spot on the computer screen, the user moves the mouse in/close to the direction of the dotted line  100  to provide input for ρ, then the solid line  110  of the spherical cursor protracts to the targeted position. If the user protracts the solid line  110  more than needed, meaning passing the targeted position, the user then will retract the solid line  110  by moving the mouse in/close to the opposite direction of the dotted line. 
         [0091]    In this case, the computer system distinguishes between the mouse&#39;s movement inputs for θ and ρ by measuring the distance of the mouse&#39;s movement on a surface. Assuming this distance is less than one inch, then the computer system considers the input as an input for θ, and if this movement distance is equal to or greater than one inch, then the computer system considers this input as an input for ρ. When the user reaches the targeted position on the computer display, then s/he clicks on the left bottom of the mouse to “enter” his/her spherical cursor position to the computer system. 
         [0092]      FIG. 23.1  shows three movement steps for a mouse on a surface. The first movement from point  1  to point  2  is a movement less than one inch, accordingly, it is considered to be an input for θ. While this movement was not accurate enough to make the dotted line  100  overlap with its targeted position on the computer display, accordingly, the user moved the mouse another small movement from point  2  to point  3  for less than one inch to adjust the direction of the dotted line  100  which achieved the user&#39;s goal and made the dotted line overlap with the targeted position on the computer display. The third movement is to protract the solid line  110  of the spherical cursor to provide input for ρ; accordingly, the user moved the mouse more than one inch from point  3  to point  4  until the solid line reached the targeted position on the computer display. 
         [0093]      FIG. 23.2  illustrates the three spherical cursor movements  580 ,  590 , and  600  on the computer display that are associated, respectively, with the three mouse movements of  FIG. 23.1 , where point A represents the starting position, and point B represents the targeted point of the spherical cursor. 
         [0094]      FIG. 24.1  shows another example for another three steps for moving a mouse on a surface. Whereas the first step from point  1  to point  2  is a small movement less than one inch, accordingly, it is considered to be an input for θ, where in this step, the dotted line  100  of the spherical cursor reached its targeted position from the first time. The second step from point  2  to point  4  is a mouse&#39;s movement greater than one inch and, accordingly, it is considered to be an input for ρ, whereas the solid line  110  of the spherical cursor protracted to reach its targeted position. However, this movement was bigger than the needed distance accordingly, the solid line passed the targeted position. To remedy this, the user moved the mouse backwards from point  4  to point  3 , in/close to the opposite direction of the dotted line  100  of the spherical cursor to get back the solid line  110  to reach the targeted position. 
         [0095]      FIG. 24.2  illustrates the three spherical cursor movements  610 ,  620 , and  630  on the computer display that are associated, respectively, with the three movements by the mouse of  FIG. 24.1 , where point A represents the starting position, and point B represents the targeted point of the spherical cursor. 
         [0096]      FIG. 24.2  indicates two regions on the computer screen which are numbered  640  and  650 , where region  640  defines the directions of the mouse&#39;s movements that are considered to be in or close to the direction of the dotted line  100 , and the region  650  defines the directions of the mouse&#39;s movements that are considered to be in the opposite or close to the opposite direction of the dotted line  100 . The following mathematical relationships express the values of the two regions  640  and  650  accurately as follows: 
         [0000]      (θ+90)&gt;“region 640”&gt;(θ−90) 
         [0000]      (θ+90)&lt;“region 650”&lt;(θ−90) 
         [0097]    According to the previous mathematical relationships, the region  640  clarifies what is meant by saying “moving the spherical mouse in/close to the direction of the dotted line  100 ” and the region  650  clarifies what is meant by saying “moving the spherical mouse in/close to the opposite direction of the dotted line  100 .” 
         [0098]    In general, the previous description illustrates the method of utilizing the spherical coordinate system to move the spherical cursor on the computer display. However, the following examples illustrate more technical details for different movement tasks in 2D and 3D. 
         [0099]    The traditional computer cursor movement is configured in a traditional manner to move from a start point to a targeted position on the computer display in a freeform path. This freeform path cannot be straight lines or accurate curves or circles due to the natural imperfections in human hand movements while using an input device such as a mouse, touchpad, pointing stick, touch-sensitive screen, digital template, or inertial 3D pointing device. 
         [0100]    The present invention manipulates the spherical cursor to move in geometrical paths or grids including the curvature paths not only in 2D but in 3D as well. Such manipulation serves many industrial applications such as virtual reality, gaming, 3D modeling, Internet world mapping, GPS, and 3D computer interfaces among others. 
         [0101]    The invention method provides the computer system with three input values of the three components of the spherical coordinate system θ, φ, and ρ to move the spherical cursor on the computer display where said method comprising the steps of: 
         [0102]    Providing the value of θ to the computer system, where θ represents a horizontal rotation of the spherical cursor about its nock end in the xy-plane where the positive and negative inputs of θ represent, respectively, a horizontal counterclockwise or clockwise rotation. 
         [0103]    Providing the value of φ to the computer system, where φ represents a vertical rotation of the spherical cursor about its nock end in a perpendicular plane to the xy-plane, where the positive and negative inputs of φ represent, respectively, a vertical counterclockwise or clockwise rotation. 
         [0104]    Providing the value of ρ to the computer system, where ρ represents the spherical cursor movement in a direction resulting from the horizontal rotation according to the input of θ, and/or the vertical rotation according to the input of φ, where the positive and negative inputs of ρ represent, respectively, moving the spherical cursor inward or backward in said direction. 
         [0105]    The values of θ and φ range from 0 to 360, where the value of 360 represent one complete rotation (in some applications the value of θ and/or the value of φ range from −90 to 90), while the value of ρ has no range since it represents the radial distance of the spherical cursor movement on the computer screen. 
         [0106]      FIG. 25.1  illustrates a diagrammatic illustration representing the order of providing the three components of θ, φ, and ρ to the computer system to move the spherical cursor in line, where as shown in this figure, the input of ρ is always the last provided input, where the inputs of θ and/or φ are provided before ρ. 
         [0107]      FIG. 25.2  shows another diagrammatic illustration representing another order of providing the three components θ, φ, and ρ to the computer system to move the spherical cursor in a curve, where as shown in this figure; the value of ρ is the first one to be provided to the computer system whether one or both of the two components of θ, and φ are provided after. In general, the two previous diagrams illustrate the importance of the order of providing the three components θ, φ, and ρ to the computer system to distinguish between moving the spherical cursor in lines or curves. The following explanation gives more details on this method. 
         [0108]    For example, to move the spherical cursor in a linear path in the positive direction of the x-axis, the two values of θ and ρ are to be provided to the computer system. In this case, the value of θ is equal to zero and the value of ρ is equal to the needed movement distance in the positive direction of the x-axis, assuming that ρ is equal to 1 unit. Then the spherical cursor will move one unit from a start point to an end point in the positive direction of the x-axis as shown in  FIG. 26.1 . If the value of θ is equal to 180 instead of zero then the spherical cursor movement will be in the negative direction of the x-axis as shown in  FIG. 26.2 . If the value of θ is equal to 90 then the spherical cursor will move in the positive direction of the y-axis as shown in  FIG. 26.3 ; if the value of θ is equal to 270 then the spherical cursor will move in the negative direction of the y-axis as shown in  FIG. 26.4 . It is obvious in the previous four figures that the value of θ is provided to the computer system before the value of ρ as indicated in the small attached table with each of the four previous figures. 
         [0109]    To move the spherical cursor in any other direction than the x or y-axis, the value of θ will not be equal to 0, 90, 180, 270, or 360. For example if the value of θ is equal to 45 then the spherical cursor will move as shown in  FIG. 27.1  while if this value is 135 then the spherical cursor movement will be as shown in  FIG. 27.2 , whereas in this figure the value of ρ is equal to 2 which means the spherical cursor movement will be two units. In  FIG. 27.3  the value of θ is equal to 300 and the value of ρ is equal to 1.5, and in  FIG. 27.4  the value of θ is equal to 240. 
         [0110]    The order of providing θ then ρ to the computer system enables the user to move the spherical cursor in lines or linear paths. However, repeating this type of spherical cursor movements forms geometrical paths or shapes in the xy-plane as shown in  FIG. 28 , where this figure illustrates three examples of such geometrical spherical cursor movements. 
         [0111]    To control the spherical cursor to move in geometrical grids, the step values of θ and ρ should be defined to the computer system. These steps indicate the smallest numerical unit used that can be multiplied to provide the value of θ and ρ. For example, if the step of θ is equal to 120 and the step of ρ is equal to 1 then the spherical cursor will be moved in a geometrical grid as shown in  FIG. 29.1 . Also, if the step of θ and ρ are, respectively, equal to 60 and 1, then the spherical cursor will move in a geometrical grid as shown in  FIG. 29.2 . According to this concept it is easy to control the spherical cursor to move only in the x and y-axis if the step of θ is equal to 90. However, the step of θ can be a multiple-step which consists of a plurality of values as opposed to only one value. This enables the spherical cursor to move in linear paths that form more complicated grids such as the one shown in  FIG. 29.3 , whereas in this example the multiple-step of θ is 135, 90 and 135. 
         [0112]    As mentioned previously in the two diagrams in  FIGS. 25.1  and  25 . 2 , the order of providing θ and ρ to the computer system distinguishes between moving the spherical cursor in lines or curves in the xy-plane. However, the previous examples illustrated moving the spherical cursor in lines, whereas  FIG. 30  illustrates the method of moving the spherical cursor in curves in the xy-plane, where said method is comprised of the following steps: 
         [0113]    Providing the value of θ and ρ to the computer system to move the spherical cursor linearly from a start point P 1  to a targeted point P 2 , to define the end point of the curvature path of the spherical cursor. 
         [0114]    Providing a second input value for ρ to the computer system to again move the spherical cursor from P 1  to P 2  in a curvature path where the second input value of ρ ranges from −180 to 180, where the value of 180 and −180 represent moving the spherical cursor, respectively, in a semi-circular path, counterclockwise or clockwise, and any input value between 180 and −180 represents moving the spherical cursor in a curve located between said two semicircles relative to the value of said input. 
         [0115]    According to the previous explanation it is possible to move the spherical cursor from P 1  to P 2  in different curvature paths as shown in  FIG. 30 . For example if the second input of ρ is equal to −45 then the spherical cursor movement will be a slight counterclockwise curve as shown in the figure, while if the second input of ρ is +135 then the spherical cursor will move in a curve close to the clockwise semicircle as shown in the figure. To simplify forming such curves, the computer system draws a circle passing on P 1 , P 2 , and P 3 , where P 3  is a point in a distance perpendicular to the center point of the line P 1 -P 2 , where said distance is equal to the value of the second input of ρ multiplied by the distance between P 1  and P 2  and divided by 180; accordingly the formed curve is the part of the drawn circle from p 1  to p 2  passing on P 3 . 
         [0116]      FIG. 31  illustrates a plurality of consecutive curvature paths of the spherical cursor movements, where it is clear that having such movement is impossible to be achieved using the conventional mouse or the traditional computer cursor without the aid of software for drawing. 
         [0117]    In general, the previous examples illustrate the spherical cursor movement in lines or curves in the xy-plane by providing the two inputs of θ and ρ. However, if the two inputs of φ and ρ are provided instead, then the spherical cursor will move in the xz-plane. In this case, if the input of φ is equal to 90 then the spherical cursor movement will be in the positive direction of the z-axis as shown in  FIG. 32.1 , and if this value is 270, then the spherical cursor movement will be in the negative direction of the z-axis as shown in  FIG. 32.2 . It is noted in the previous two figures that there is no input provides for θ, which means the value of θ is equal to zero. However, to move the spherical cursor in the xz-plane,  FIGS. 33.1 ,  33 . 2 , and  33 . 3  illustrate three examples for such movement where the inputs of φ are different than 90 and 270. 
         [0118]    To move the spherical cursor in the yz-plane, the three values of θ, φ, and ρ should be provided to the computer system. However, in this case, the value of θ should be equal to 90 or −90 as shown in  FIGS. 34.1 ,  34 . 2 , and  34 . 3 . 
         [0119]    Generally, all the previous examples illustrate the spherical cursor movement in the xy or xz, or yz-plane, however, to move the spherical cursor in 3D in different planes than the previous three mentioned planes, specific values of θ, φ, and ρ should be provided to the computer system.  FIGS. 35.1 ,  35 . 2 , and  35 . 3  illustrate three examples of such spherical cursor movements with different input values for θ, φ, and ρ as shown in the attached small table with each figure. However, it is noted that in these three figures some dotted lines are added to the drawings just to clarify the inclination of the spherical cursor in 3D. 
         [0120]      FIGS. 36.1  and  36 . 2  illustrate two examples for moving the spherical cursor in geometrical paths in 3D, where  FIG. 36.1  illustrates the spherical cursor movements parallel to the x, y, or z-axis, and  FIG. 36.2  illustrates various sloping movements in 3D. 
         [0121]      FIG. 37  shows different alternatives for moving the spherical cursor in curvature or semi-circular paths from P 1  to P 2  in three dimensions using the present method whereas in such cases the method is comprised of the following steps: 
         [0122]    Providing the values of θ, φ, and ρ to the computer system to move the spherical cursor linearly in three dimensions from a start point P 1  to a targeted point P 2 , to define the end point of the curvature path of the spherical cursor in 3D. 
         [0123]    Providing a second input for ρ to the computer system to again move the spherical cursor from P 1  to P 2  in a curvature path where the second input value of ρ ranges from −180 to 180, where the value of 180 and −180 represents moving the spherical cursor, respectively, in a semicircular path, counterclockwise or clockwise, and any input value of ρ between 180 and −180 represents moving the spherical cursor in a curve located between said two semicircles relative to the second input value of ρ, where said semicircle or curve plane is parallel to the x-axis. 
         [0124]    Providing a second input for θ to the computer system where said second input rotates said plane of said circle or curve about the P 1 -P 2  line, where the second input of θ ranges from −360 to −360, where the value of 360 and −360 represent, respectively, one complete counterclockwise or clockwise rotation. 
         [0125]    Generally; as a demonstration for moving the spherical cursor in 3D,  FIG. 38  illustrates a three dimensional shape drawn by moving the spherical cursor on the computer display using the present 3D mouse in 7 simple steps, wherein the first four steps  660 ,  670 ,  680 , and  690  are located in the xy-plane, hence there is no indication for φ. The  7   th  step  720  is located in the z-axis direction; thereby there is no indication for θ. The  5   th  step  700  and  6   th  steps  710  indicate θ and φ; these appear where it is simple to specify the exact angle of the spherical cursor in 3D with the help of digits or numerical values that can be appeared with the different spherical cursor rotation or movement to indicate the values of θ, φ, and ρ. 
         [0126]      FIG. 39  illustrate a spherical cursor targeting a 3D sphere on the computer display, where in such case, to move the spherical cursor from a start point P 1  to a targeted point P 2  on the outer surface of the sphere; the two inputs of θ and φ are to be provided to the computer system while the input of ρ doesn&#39;t need to be provided; since the computer system calculates it mathematically, by solving the two equations of the intersection of the sphere and the dotted line  100  of the spherical cursor, where the dotted line  100  is always defined by its start point coordinates, and the two provided angles θ and φ in 3D. In other words, to target a spot, icon, or the like on any three dimensional surface on the computer display using the present 3D mouse, the user needs to rotate the spherical cursor horizontally and/or vertically by rotating the first  160  and/or second  170  scroll wheels of the present 3D mouse until s/her reaches the target, where the computer system keeps illustrating the point of intersection between the dotted line  100  of the spherical cursor and the three dimensional surface for each different spherical cursor rotation. 
         [0127]    Although the previous illustrations for the spherical cursor and the input devices utilized the spherical coordinate system, but other coordinate systems can be used as well. For example, the spherical coordinate system transforms into a polar coordinate system when the value of φ is equal to zero. Also, the spherical coordinate system transforms into a Cartesian coordinate system when the step of θ is equal to 90 and the step of φ is equal to 90 as described previously. The cylindrical coordinate system is a polar coordinate system in three dimensions, where the inputs of θ and ρ can provide the two components of the polar coordinate system and the input of φ can provide the third dimension or the height of the cylindrical coordinate system. 
         [0128]    Six-degrees-of-freedom (translation and rotation) can be provided to the computer system using the present input devices such as the present 3D mouse, the present ring mouse, or the present 3D trackball as follows: 
         [0129]    For the present 3D mouse, the first scroll wheel  160 , the second scroll wheel  170 , and third scroll wheel  180  can provide translation in three degrees of freedom, where each scroll wheel rotation can represent moving along one of the x, y, or z-axis of the Cartesian coordinate system. To provide another three degrees of freedom to rotate about the previous three axes, each scroll wheel can have two different modes: the first mode is to be rotated normally, and the second mode is to be pressed lightly during its rotation. Such pressing makes the scroll wheel touch a sensor that generates a signal to the computer system identifying that a specific scroll wheel has been pressed during its rotation, which means this type of scroll wheel rotation is considered as a rotation about one of the x, y, or z-axis. 
         [0130]    According to that, the normal rotation of the first scroll wheel  160  can provide a movement along the x-axis, and its pressed rotation can provide a rotation about the z-axis. The normal rotation of the second scroll wheel  170  can provide a movement along the z-axis, and its pressed rotation can provide a rotation about the y-axis. The normal rotation of the third scroll wheel  180  can provide a movement along the y-axis, and its pressed rotation can provide a rotation about the x-axis. It is also possible to use three tilt scroll wheels instead of the three regular scroll wheels of the present 3D mouse. In this case rotating any of the three tilt scroll wheels provides a rotation about an axis, while tilting any of the tilt scroll wheel provides a movement along the axis. In other words, rotating the first scroll wheel  160  provides a rotation about the z-axis, while tilting it from “down” to “up” provides a movement along the positive z-axis, and tilting it from “up” to “down” provides a movement along the negative z-axis. Rotating the second scroll wheel  170  provides a rotation about the y-axis, while tilting it “forward” provides a movement along the positive y-axis, and tilting it “backward” provides a movement along the negative y-axis. Rotating the third scroll wheel  180  provides a rotation about the x-axis, while tilting it from “left” to “right” provides a movement along the positive x-axis, and tilting it from “right” to “left” provides a movement along the negative of x-axis. This idea of using three tilt scroll wheels instead of the three regular scroll wheels can be used also for the ring mouse to provide six degrees of freedom. 
         [0131]    The same idea of rotating the scroll wheels of the present 3D mouse in two modes, normally and with a light pressing, can be applied on the scroll wheels of the present ring mouse to provide six-degrees-of-freedom (translation and rotation), since they match the positioning and functionality of the scroll wheels of the present 3D mouse. However, it is important to note that using the spherical cursor with a mouse such as the mouse of  FIG. 17  can provide six degrees of freedom. In this case the two scroll wheels of this mouse will direct the spherical cursor to the positive or negative direction of the x, y, or z-axis, while moving the mouse on a surface in the direction of the dotted line  100  of the spherical cursor will provide a movement along the axis, and moving the mouse on the surface perpendicular to the direction of the doted line  100  will provide a rotation about the axis. 
         [0132]    The 3D trackball can provide six-degrees-of-freedom, as shown in  FIG. 40.1  a movement along the x, y, and z-axis is provided to the computer system, where to move along the x-axis, the first section  300  is rotated horizontally by the thumb finger to press on the first button  250  and the second button  260  during the ball rotation. To move along the y-axis, the third section  320  is rotated “up” or “down” by the index finger to press, respectively, on the first button  250  and the fourth button  280 , or to press on the second button  260  and the third button  270  during the ball rotation. To move along the z-axis, the second section  310  is rotated vertically by the middle finger to press on the third button  270  and the fourth button  280 . 
         [0133]    To provide rotation about the x, y, and z-axis,  FIG. 40.2  illustrates the 3D trackball rotation for each case. Where to rotate about the x-axis, the third section  320  is rotated “up or down” by the index finger while pushing the first section  300  laterally by the thumb finger to press on the first button  250  and the second button  260 . To rotate about the y-axis, the second section  310  is rotated vertically by the middle finger while pushing on the third section  320  laterally by the index finger to press on the second button  260  and the third button  270 . To rotate about the z-axis, the first section  300  is rotated horizontally by the thumb finger while pushing vertically on the top of the third section  320  by the index finger to prevent the ball to press on any of the four buttons. Generally the different combinations of the ball rotation directions and the ID&#39;s of the pressed buttons by the ball&#39;s rotation enable the computer system to identify which degree of freedom is meant by the ball&#39;s rotation. 
         [0134]    It is obvious that the present 3D input devices such as the three scroll wheels of the present 3D mouse, the present 3D trackball, and the present horizontal tilt wheel can be incorporated on the regular computer mouse. In this case the movement of the regular mouse on a surface can provide an input for the x and y coordinates of a mouse&#39;s movement on the surface to the computer system, while the present 3D input device can provide an input for θ, φ, and ρ to the computer system. This combination enables the user to control moving two different cursors on the computer display, the first cursor is the regular cursor which can be used for the 2D applications, and the second cursor is the spherical cursor which can be used for the 3D applications. It is also possible to make one of the regular cursor and the spherical cursor drags the other to change its position in 2D and/or 3D on the computer display. Moreover, it is possible to incorporate the regular cursor and the spherical cursor together, in this case the regular cursor is moved on the computer display as usual but when the input of θ, φ, and ρ is provided to the computer system then the dotted line  100  and the solid line  110  of the spherical cursor starts form the regular cursor position on the computer display plane. 
         [0135]    Overall, the alternatives of the present invention are simple and straightforward and can be utilize in a number of existing technologies to easily and inexpensively produce the invention. However, the invention includes some main parts that are described in the following: 
         [0136]    The 3D mouse is a regular mouse with an optical or laser sensor at the bottom of the mouse to detect the mouse&#39;s movement on a pad or surface, in addition to three scroll wheels which are regular mouse scroll wheels that can be carried out in similar fashion to the regular mouse&#39;s scroll wheels and can be implemented by using optical encoding disks including light holes, wherein infrared LED&#39;s shine through the disks; sensors then gather light pulses to convert the rotation of the scroll wheels into inputs for θ, φ, and ρ. It is also possible to use light-emitting diodes and photodiodes, a special-purpose image processing chip, or capacitive sensors, or other known technology to detect the finger&#39;s movement rather than rotating the scroll wheels. In this case, each scroll wheel will be a fixed wheel or a small strip with a light hole that detects the movement of the user&#39;s finger in two perpendicular directions. 
         [0137]    The ring mouse utilizes three scroll wheels similar to the 3D mouse scroll wheels. However, in addition to the previous described manner of the 3D mouse scroll wheels, a digital sensor can be used for each scroll wheel of the ring mouse to detect its rotation and provide the computer system with digital data representing the direction and the value of rotation. 
         [0138]    The 3D trackball is an upside-down mouse ball to be rotated by the user&#39;s fingers instead of moving it on a pad or surface. Its rotation is detected by an optical or laser sensor similar to the regular mouse&#39;s movement detection, however, each of the four buttons  250 ,  260 ,  270 , and  280  that surround the ball is a two-way digital button that can be “ON” if it is pressed by the ball during its rotation, or be “OFF” when it is not pressed as was described previously. It is also possible to incorporate the 3D trackball on the top of the regular mouse as mentioned previously. 
         [0139]    The horizontal scroll wheel is a regular scroll wheel that can be tilted vertically to press on one of the four buttons. The rotation of the scroll wheels can be detected in a similar fashion as the detection of the regular mouse&#39;s scroll wheels or by using a digital sensor to provide the computer system with digital data representing the rotation of the horizontal scroll wheel. The four buttons  360 ,  370 ,  380 , and  390  can utilize a four-way analog sensor with its printed circuit board (“PCB”) as known in the art, where in this case, the PCB will process raw analog signals and convert them into digital signals that can be used for the microprocessor of the computer system. In this case, as long as the user is touching the analog sensor, the sensor continuously generates specific data corresponding to the finger force and its position. It is also possible to utilize a 4-way digital sensor and its related PCB, where the digital sensor provides four independent digital ON-OFF signals in the direction of North, East, South, and West of said horizontal scroll wheel 
         [0140]    Lastly, the nature of interacting between the user&#39;s fingers and the scroll wheels of the 3D mouse, ring mouse, and horizontal tilt wheel, or the ball or the 3D trackball can utilize haptic technology which refers to the technology that interfaces the user via the sense of touch by applying forces, vibrations and/or motions to the user&#39;s fingers. Accordingly, it is possible to make the user feel feedback such as weight, shape, texture and force effects especially in gaming, virtual training, or medical applications. 
         [0141]    As discussed above, a spherical cursor, 3D input devices, and method are disclosed, while a number of exemplary aspects and embodiments have been discussed above, those skilled in the art will recognize certain modifications, permutations, additions and sub-combinations thereof. It is therefore intended that claims hereafter introduced are interpreted to include all such modifications, permutations, additions and sub-combinations as are within their true spirit and scope.