U.S. patent application number 11/654740 was filed with the patent office on 2008-01-10 for spherical coordinates cursor, mouse, and method.
This patent application is currently assigned to Cherif Atia Algreatly. Invention is credited to Cherif Atia Algreatly.
Application Number | 20080010616 11/654740 |
Document ID | / |
Family ID | 38936169 |
Filed Date | 2008-01-10 |
United States Patent
Application |
20080010616 |
Kind Code |
A1 |
Algreatly; Cherif Atia |
January 10, 2008 |
Spherical coordinates cursor, mouse, and method
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's hand as in real games where the 3D
mouse provides the computer system with the details of the hand
movement'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.
Inventors: |
Algreatly; Cherif Atia;
(Newark, CA) |
Correspondence
Address: |
Cherif Atia Algreatly;Mathematical Inventing - Silicon Valley
Suite 286, 39962 Cedar Blvd
Newark
CA
94560
US
|
Assignee: |
Algreatly; Cherif Atia
Newark
CA
|
Family ID: |
38936169 |
Appl. No.: |
11/654740 |
Filed: |
January 18, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
PCT/EG06/00036 |
Oct 4, 2006 |
|
|
|
11654740 |
|
|
|
|
PCT/EG06/00025 |
Jul 7, 2006 |
|
|
|
PCT/EG06/00036 |
|
|
|
|
11564882 |
Nov 30, 2006 |
|
|
|
PCT/EG06/00025 |
|
|
|
|
Current U.S.
Class: |
715/856 ;
345/156; 345/157; 345/163; 345/167 |
Current CPC
Class: |
G06F 3/0346 20130101;
G06F 3/03549 20130101; G06F 3/03543 20130101; G06F 3/0362 20130101;
G06F 3/04815 20130101 |
Class at
Publication: |
715/856 ;
345/156; 345/157; 345/163; 345/167 |
International
Class: |
G06F 3/048 20060101
G06F003/048; G06F 3/033 20060101 G06F003/033 |
Claims
1. A 3D mouse to provide an input for the three components
(.theta., .phi., and .rho.) of the spherical coordinate system to a
computer system, wherein said three components represent positional
information of a cursor on the computer display, and said 3D mouse
is comprised of: a) a mouse that is able to provide x and y inputs
to the computer system to represent the mouse's movement on a
surface. b) a first scroll wheel 160 on the left side of said mouse
which has its axis perpendicular to the mouse pad surface, and can
be rotated horizontally clockwise or counterclockwise by the thumb
finger to provide, respectively, immediate negative or positive
input for .theta.. c) a second scroll wheel 170 on the right side
of said mouse which has its axis parallel to the mouse pad surface,
perpendicular to the axis of the first scroll wheel 160, and can be
rotated vertically clockwise or counterclockwise by the middle or
ring finger to provide, respectively, immediate negative or
positive input for .phi.. d) a third scroll wheel 180 on the top
side of said mouse which has its axis parallel to the mouse pad
surface, perpendicular to the axes of the first scroll wheel 160
and second scroll wheel 170, and can be rotated vertically up or
down by the index or middle finger to provide, respectively,
immediate positive or negative input for .rho..
2. A computer cursor that can be rotated about its nock to move in
a specific direction on the computer display in two and/or three
dimensions, where said computer cursor is manipulated by providing
an input for the three components (.theta., .phi., and .rho.) of
the spherical coordinate system to the computer system, where said
cursor is named "Spherical Cursor" and comprised of: a) a dotted
line 100 serving as a ray reaching all possible target points in
the cursor's direction on the computer display. b) a solid line 110
that represents the radial distal movement length of the cursor
.rho., in its determined direction on the dotted line from a
starting point 120 to a targeted point 130. c) a horizontal
circular portion 140 that gives the feeling of the xy-plane and
indicates the value of .theta.. d) a vertical circular portion 150
that gives the feeling of the cursor rotation in third dimension,
perpendicular to the xy-plane and indicates the value of .phi..
3. A method to move the computer cursor in two and/or three
dimensions from a start point to a targeted point on the computer
display, by providing an input for the three components (.theta.,
.phi., and .rho.) of the spherical coordinate system to the
computer system, wherein, a) .theta. is the angle between the
positive x-axis and the line from the start point to the target
point projected onto the xy-plane, to represent the computer cursor
rotation in xy-plane. b) .phi. is the angle between the xy-plane
and the line from the start point to the target point, to represent
the computer cursor rotation in third dimension perpendicular to
the xy-plane. c) .rho. is the distance between the start point and
the target point, to represent the computer cursor movement in its
determined direction on the computer display.
4. A device to provide an input for the two components .theta. and
.phi. of the spherical coordinate system to the computer system to
represent the user's hand rotation in three dimensions wherein said
device comprised of: a) a chassis which is suitable for a user to
grasp with one hand. b) a first scroll wheel on the right side of
said chassis to be rotated by the user's thumb finger to provide
immediate input for .theta. to the computer system. c) a second
scroll wheel on the left side of said chassis to be rotated by the
user's index, or middle finger to provide immediate input for .phi.
to the computer system. Wherein rotating the user's hand from
"left" to "right", rotates the first scroll wheel horizontally
clockwise, and rotates the second scroll wheel vertically
clockwise, while rotating the user's hand from "right" to "left"
rotates the first scroll wheel horizontally counterclockwise, and
rotates the second scroll wheel vertically counterclockwise.
5. A ring mouse to provide an input for the three components
.theta., .phi., and .rho. of the spherical coordinate system to a
computer system, wherein said three components represent positional
information of a cursor on the computer display, where said ring
mouse is comprised of: a) a finger ring to hold the components of
said ring mouse. b) a first scroll wheel 190 on the top side of the
ring to be rotated horizontally clockwise or counterclockwise by
the thumb finger to provide, respectively, negative or positive
input for .theta.. c) a second scroll wheel 200 on the left side of
the ring to be rotated vertically clockwise or counterclockwise by
the thumb finger to provide, respectively, negative or positive
input for .phi.. d) a third scroll wheel 210 on the front side of
the ring to be rotated vertically "up" or "down" by the thumb
finger to provide, respectively, positive or negative input for
.rho..
6. A 3D trackball to provide an input for the three components
(.theta., .phi., and .rho.) of the spherical coordinate system to a
computer system, wherein said three components represent positional
information of a cursor on the computer display, where said 3D
trackball is comprised of: a) a ball 230 to be rotated horizontally
or vertically by the user's fingers. b) a base 240 to hold the
components of said 3D trackball. b) a first button 250, second
button 260, third button 270, and fourth button 280 to be pressed
by said ball during its rotations. c) an optical sensor 290 to
detect the rotational direction of said ball. e) a first section
300, second section 310, and third section 320 that are dividing
the ball 230 into three imaginary sections. Wherein said ball 230,
provides an input for .theta. to the computer system when said
first section 300 is rotated horizontally by the thumb finger to
press on the first button 250 and the second button 260, while
provides an input for .phi. to the computer system when said second
section 310 is rotated vertically by the middle or ring finger to
press on the third button 270 and the fourth button 280, and
provides an input for .rho. to the computer system when said 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
on the second button 260 and the third button 270.
7. A horizontal tilt wheel to provide an input for the three
components .theta., .phi., and .rho. of the spherical coordinate
system to a computer system, wherein said three components
represent positional information of a cursor on the computer
display, where said horizontal tilt wheel is comprised of: a) a
horizontal scroll wheel 330 to be rotated horizontally about its
vertical axis by the user's finger to provide input for .theta.. b)
a left button 340 to function as a regular mouse left button. c) a
right button 350 to function as a regular mouse right button. d) 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 to detect the
tilting direction of said scroll wheel. Wherein pressing on the top
side of said scroll wheel 330 by the user's finger from, its East
side provides negative input for .phi., from its West side provides
positive input for .phi., from its North side provides positive
input for .rho., and from its South side provides negative input
for .rho. to the computer system.
8. The 3D mouse of claim 1 further each of said first scroll wheel
160, said second scroll wheel 170, and said third scroll wheel 180
can be pressed lightly by the user's fingers during the rotation to
touch a sensor to generate a signal to the computer system
identifying that a specific scroll wheel is pressed during its
rotation.
9. The 3D mouse of claim 1 wherein said mouse is a computer
keyboard wherein said first scroll wheel 160, said second scroll
wheel 170, and said third scroll wheel 180 are incorporated on top
of said computer keyboard.
10. The 3D mouse of claim 1 whereas one or more of the input of
said first scroll wheel 160, said second scroll wheel 170, or said
third scroll wheel 180 is replaced with the input of said mouse
movement on a surface to provide an input for .theta., .phi., or
.rho. to the computer system.
11. The 3D mouse of claim 1 wherein said first scroll wheel 160 and
said second scroll wheel 170 are a trackball that is manipulated
with the palm or the fingers of the user's hand to provide
immediate input for .theta., and .phi. to the computer system.
12. The 3D mouse of claim 1 wherein one or more of said first
scroll wheel 160, said second scroll wheel 170, or said third
scroll wheel 180 is replaced with a touch-sensitive pad to detect
the user's finger movement to provide input for .theta., .phi., or
.rho. to the computer system.
13. The 3D mouse of claim 1 whereas one or more of said first
scroll wheel 160, said second scroll wheel 170, or said third
scroll wheel 180 is replaced with two pressure sensitive buttons to
detect the user's finger pressing to provide positive or negative
input for .theta., .phi., or .rho. to the computer system.
14. The 3D mouse of claim 1 whereas said first scroll wheel 160,
said second scroll wheel 170, and said third scroll wheel 180 are
tilt wheels that can be rotated or tilted by the user's finger to
provide six degrees of freedom to the computer system, whereas: a)
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. b) 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. c) 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 x-axis.
15. The 3D mouse of claim 1 wherein said mouse has an optical
sensor to detect said mouse movement on the surface.
16. The 3D mouse of claim 1 wherein said computer mouse has a laser
sensor to detect said mouse movement on the surface.
17. The 3D mouse of claim 1 wherein said first scroll wheel 160,
said second scroll wheel 170, and said third scroll wheel 180 use
optical encoding disks including light holes, wherein infrared
LED's shine through the disks and sensors gather light pulses to
convert the rotation of the scroll wheel into inputs for .theta.,
.phi., and .rho..
18. The 3D mouse of claim 1 wherein said first scroll wheel 160,
said second scroll wheel 170, and said third scroll wheel 180 are
fixed wheels enable to detect the movement of the user's finger in
two perpendicular directions by using capacitive sensors.
19. The 3D mouse of claim 1 wherein said first scroll wheel 160,
said second scroll wheel 170, and said third scroll wheel 180 are
fixed wheels with a light hole to enable detecting the movement of
the user's finger by using a special-purpose image processing
chip.
20. The 3D mouse of claim 1 wherein two or three of said first
scroll wheel 160, second scroll wheel 170, and third scroll wheel
180 are on the same side of said computer mouse to be rotated by
one user's finger.
21. The 3D mouse of claim 1 further allows applying forces,
vibration, or motion to said first scroll wheel 160, said second
scroll wheel 170, and said third scroll wheel to make the user
feels weight, shape, texture, dimension, or force effects while
using said 3D mouse to move the computer cursor or an object on the
computer display.
22. The computer cursor of claim 2 further numerical digits are
shown on the computer display; beside the solid line 110 to
indicate the input value of .rho., beside the horizontal circular
portion 140 to indicate the input value of .theta., and beside the
vertical circular portion 150 to indicate the input value of
.phi..
23. The computer cursor of claim 2 further a regular computer
cursor is provided on the computer display, where said regular
computer cursor is manipulated to move in two dimensions by
providing the two component x and y of the Cartesian coordinate
system to the computer system, and said spherical cursor is
manipulated to move in three dimensions by providing the three
components .theta., .phi., or .rho. of the spherical coordinate
system to the computer system, wherein one of said regular computer
cursor or said spherical cursor can click or drag and move the
other to change its position in two and/or three dimension on the
computer display.
24. The computer cursor of claim 2 whereas it is moved on the
xy-plane on the computer display, which means there no input
provided for .phi. to the computer system, which means in this
case, the vertical circular portion 150 of said computer cursor
doesn't exist.
25. The computer cursor of claim 2 whereas it is moved on the
xz-plane on the computer display, which means there no input
provided for .theta. to the computer system, which means in this
case, the horizontal circular portion 140 of said computer cursor
doesn't exist.
26. The computer cursor of claim 2 whereas it is moved on a
specific plane on the computer display where the computer system
considers said specific plane as an xy-plane, which means there no
input provided for .phi. to the computer system, which means in
this case, the vertical circular portion 150 doesn't exist, and
when the user provides an input for .phi. to the computer system
then the computer system recognizes the user's need to move in
three dimensions out of said specific plane, and then the vertical
circular portion 150 exists which means appears on the computer
display.
27. The spherical cursor of claim 2 wherein said horizontal
circular portion 140 and said vertical circular portion 150 are a
line which is a projection of said solid line 110 on the xy-plane
on the computer display to indicate the inclination of the solid
line 110 in three dimensions.
28. The method of claim 3 whereas the input for .theta. and/or
.phi. are provided to the computer system before the input for
.rho., to enable the computer system to identify the user's need to
move the computer cursor in lines on the computer display.
29. The method of claim 3 whereas the input for .rho. is provided
to the computer system before the input for .theta. and/or .phi. to
enable the computer system to identify the user's need to move the
computer cursor in curves on the computer display.
30. The method of claim 3 whereas each of .theta., .phi., and .rho.
has a step value which indicates the smallest numerical unit used
that can be multiplied to provide the input value for .theta.,
.phi., or .rho. to the computer system to move the computer cursor
on specific grid on the computer display.
31. The method of claim 3 whereas the computer cursor is targeting
a spot on a plane in 3D on the computer display, wherein the value
of .rho. is not provided to the computer system where the computer
system calculates it mathematically, by solving the intersection
equation between the equation of the dotted line 100 of the
spherical cursor which is defined by its start point 120
coordinates, and the two angle .theta. and .phi., and the equation
of said targeted plane.
32. The method of claim 3 further providing the input for .theta.,
.phi., and .rho. to the computer system by moving an object
whereas: a) horizontally moving said object clockwise or
counterclockwise provides, respectively, a negative or positive
input for .theta.. b) vertically moving said object clockwise or
counterclockwise provides, respectively, a negative or positive
input for .phi.. c) moving said object forward or backward
provides, respectively, a positive or negative input for .rho..
33. The method of claim 3 wherein the input of .theta. is provided
to the computer system by a regular mouse movement on a surface
where rotating said mouse horizontally on said surface rotates the
computer cursor horizontally on the computer display, and the input
of .phi. is provided to the computer mouse by rotating a scroll
wheel on said mouse where rotating said scroll wheel rotates the
computer cursor vertically on the computer display, where said
mouse movement and said scroll wheel's rotation enable the computer
cursor's direction to scan the computer display in 3D horizontally
and vertically.
34. The method of claim 3 wherein said computer cursor is an icon
to be moved in 3D on the computer display.
35. The method of claim 3 wherein said computer cursor is a menu to
be moved in 3D on the computer display.
36. The method of claim 3 wherein said computer cursor is a virtual
camera's orientation to be moved on in 3D the computer display.
37. The method of claim 3 wherein said computer cursor is an object
to be moved in 3D on the computer display.
38. The device of claim 4 wherein said first scroll wheel is a
first press button to be pressed by the user's thumb finger during
the user's hand rotation to provide an input for .theta. to the
computer system, and said second scroll wheel is a second press
button to be pressed by the user's index or middle finger during
the user's hand rotation to provide an input for .phi. to the
computer system.
39. The device of claim 4 wherein said first scroll wheel is an
optical sensor to detect the horizontal rotation of the user's
thumb finger during the user's hand rotation to provide an input
for .theta. to the computer system, and said second scroll wheel is
an optical sensor to detect the vertical rotation of the user's
index or middle finger during the user's hand rotation to provide
an input for .phi. to the computer system.
40. The device of claim 4 further applying forces, vibration, or
motion to said first scroll wheel, and said second scroll wheel to
make the user feel haptic feedback such as weight, shape, texture,
dimension, and force effects while using said device to move the
computer cursor or an object on the computer display.
41. The ring mouse of claim 5 further each of said first scroll
wheel 200, said second scroll wheel 210, and said third scroll
wheel 220 can be pressed lightly by the user's thumb finger during
the rotation to touch a sensor that generates a signal to the
computer system identifying that a specific scroll wheel is pressed
during its rotation.
42. The ring mouse of claim 5 further said ring is a cube to hold
the components of said ring mouse whereas an appendage is attached
to said cube to be wrapped around the user's finger with
Velcro-like fabric.
43. The ring mouse of claim 5 further each of said first scroll
wheel 200, said second scroll wheel 210, and said third scroll
wheel 220 utilizes a digital sensor to detect said scroll wheel's
rotation.
44. The ring mouse of claim 5 further allows applying forces,
vibration, or motion to said first scroll wheel 190, said second
scroll wheel 200, and said third scroll 210 wheel to make the user
feel haptic feedback such as weight, shape, texture, dimension, and
force effects while using said ring mouse to move the computer
cursor or an object on the computer display
45. The 3D trackball of claim 6 further provides
six-degrees-of-freedom (6 DOF) motion control to the computer
system whereas: a) to move along the x-axis on the computer
display, the first section 300 is rotated horizontally by the thumb
finger to press on the first button 250 and the second button 260.
b) to move along the y-axis on the computer display, 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
on the second button 260 and the third button 270. c) to move along
the z-axis on the computer display, the second section 310 is
rotated vertically by the middle finger to press on the third
button 270 and the fourth button 280. d) to rotate about the x-axis
on the computer display, 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. e) to rotate about the y-axis on the
computer display, the second section 310 is rotated vertically by
the middle finger while pushing the third section 320 laterally by
the index finger to press on the second button 260 and the third
button 270. f) to rotate about the z-axis on the computer display,
the first section 300 is rotated horizontally by the thumb finger
while pushing vertically the top point of the third section 320 by
the index finger to prevent the ball from pressing on any of the
four buttons.
46. The 3D trackball of claim 6 wherein said 3D trackball is
incorporated on a top side of a computer keyboard.
47. The 3D trackball of claim 6 wherein said 3D trackball is
incorporated on the top side or a computer mouse.
48. The 3D trackball of claim 6 wherein said optical sensor 290 is
a laser sensor to detect the rotational direction of said ball
230.
49. The 3D trackball of claim 6 wherein each of said first button
250, second button 260, third button 270, and fourth button 280 are
two-way digital buttons that can be "ON" when it is pressed and be
"OFF" when it is not pressed.
50. The 3D trackball of claim 6 further allows applying forces,
vibration, or motion to said ball 230 to make the user feel haptic
feedback such as weight, shape, texture, dimension, and force
effects while using said 3D trackball to move the computer cursor
or an object on the computer display.
51. The horizontal tilt wheel of claim 7 wherein said horizontal
tilt wheel is incorporated on the top side of a computer
keyboard.
52. The horizontal tilt wheel of claim 7 wherein said horizontal
tilt wheel is incorporated on the top side of a computer mouse.
53. The horizontal tilt wheel of claim 7 wherein said horizontal
tilt wheel is attached to a finger ring to be put on the index or
middle finger of the user's hand and be operated by the thumb
finger.
54. The horizontal tilt wheel of claim 7 further said horizontal
scroll wheel 360 utilizes a digital sensor to provide the computer
system with digital data representing the horizontal rotation of
said horizontal scroll wheel.
55. The horizontal tilt wheel of claim 7 further said first button
360, said second button 370, said third button 380, and said fourth
button 390 are a four-way analog sensor with its printed circuit
board to process raw analog signals and convert them into digital
signals that can be used for the microprocessor of the computer
system.
56. The horizontal tilt wheel of claim 7 further said first button
360, said second button 370, said third button 380, and said fourth
button 390 are a 4-way digital sensor with its related PCB to
provide four independent digital ON-OFF signals that can be used
for the microprocessor of the computer system.
57. The horizontal tilt wheel of claim 7 further allows applying
forces, vibration, or motion to said horizontal scroll wheel 330 to
make the user feel haptic feedback such as weight, shape, texture,
dimension, and force effects while using said horizontal tilt wheel
to move the computer cursor or an object on the computer
display.
58. The 3D Mouse of claim 8 further provides six-degrees-of-freedom
(6 DOF) motion control to the computer system whereas: a) to move
along the x-axis on the computer display, the first scroll wheel
160 is rotated horizontally by the thumb finger. b) to move along
the y-axis on the computer display, the third scroll wheel 180 is
rotated up or down by the index finger. c) to move along the z-axis
on the computer display, the second scroll wheel 170 is rotated
vertically by the middle or ring finger. d) to rotate about the
x-axis on the computer display, the third scroll wheel 180 is
rotated up or down while pressing it lightly by the index finger.
e) to rotate about the y-axis on the computer display, the second
scroll wheel 170 is rotated vertically while pressing it lightly by
the middle or ring finger. e) to rotate about the z-axis on the
computer display, the first scroll wheel 160 is rotated
horizontally while pressing it lightly by the thumb finger.
59. The 3D mouse of claim 10 wherein said mouse movement on a
surface provides an input for x and y mouse movement on said
surface to the computer system, where the x and y values represent
an input for .theta., .phi., or .rho. equal to
(x.sup.2+y.sup.2).sup.0.5, where said input is positive if the
mouse movement is forward, and said input is negative if the mouse
movement is backward.
60. The 3D mouse of claim 10 wherein said mouse movement on a
surface provides an input for x and y mouse movement on said
surface to the computer system, where said mouse movement
represents; positive input for .theta. if the movement is in the
direction of the positive x-axis, negative input for .theta. if the
movement is in the direction of the negative x-axis, positive input
for .phi. if the movement is in the direction of the positive
y-axis, negative input for .phi. if the movement is in the
direction of the negative y-axis, negative input for .rho. if the
movement's direction is between the positive x and y-axis, and
negative input for .rho. if the movement's direction is between the
negative x and y-axis.
61. The 3D mouse of claim 12 wherein said user's finger movement on
said touch-sensitive pad provides the computer system with;
positive input for .theta. when the movement is a counterclockwise
520, negative input for .theta. when the movement is clockwise 530,
positive input for .phi. when the movement is vertical 540 from
"down" to "up", negative input for .phi. when the movement is
vertical 550 from "up" to "down", positive input for .rho. when the
movement is horizontal 560 from "left" to "right", and negative
input for .rho. when the movement is horizontal 570 from "right" to
"left".
62. The method of claim 30 whereas the step value of .theta. is
equal to 90, and the step value of .phi. is equal to 90 which means
the computer cursor moves on the computer display parallel to the
x, y, or z-axis of the Cartesian coordinate system.
63. The method of claim 30 whereas said step value is a
multiple-step which consists of a plurality of values as opposed to
only one value.
64. The method of claim 31 wherein said spot on said plane is an
icon, menu, or object where said icon, menu, or object is
highlighted or its color or shape changed when it intersects with
the direction of the computer cursor on the computer display.
65. The method of claim 32 whereas said object is a user's finger
that is moved on a touch-sensitive pad to provide input for
.theta., .phi., and .rho. to the computer system.
66. The method of claim 32 whereas said object is a pointing
stick.
67. The method of claim 32 whereas said object is a joystick.
68. The method of claim 32 wherein said object is a computer mouse
that can be moved in steps comprised of: a) moving the computer
mouse on a surface horizontally parallel to the positive or
negative x-axis to provide, respectively, positive or negative
input for .theta.. b) moving the computer mouse on a surface
vertically parallel to the positive or negative y-axis to provide,
respectively, positive or negative input for .phi.. c) moving the
computer mouse on a surface, inwards/closer to the horizontal
direction of the spherical cursor to provide positive input for
.rho., or inwards/closer to the opposite horizontal direction of
the spherical cursor to provide negative input for .rho..
69. The method of claim 32 to provide positional information to the
computer system to move the computer cursor of claim 2 in two
dimensions using the polar coordinate system, wherein said object
is a computer mouse that is moved in steps comprised of: a) moving
said mouse on a surface in a specific direction for less than one
inch where the direction of said mouse movement manipulates the
dotted line 100 to the same direction on the computer display to
provide an input for .theta. to the computer system. b) moving said
mouse on a surface in or close to the direction of said dotted line
100 for one inch or more to move the solid line 110 a relative
distance on the computer display to provide an input for .rho. to
the computer system.
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'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'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'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' 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'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'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'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'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'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: .rho.,
.theta., and .phi.. The component .rho. is the distance between the
point P and the origin, .theta. is the angle between the positive
x-axis and the line from the origin to the point P projected onto
the xy-plane, and .phi. 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's direction on the computer display; a solid line 110 that
represents the radial distal movement length of the cursor .rho.,
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 .theta.; 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
.phi..
[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 .theta. 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 .phi. 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
.rho. to the computer system.
[0014] To operate this 3D mouse, the user rotates the first scroll
wheel 160 horizontally to determine .theta., the horizontal
rotation of the spherical cursor in the xy-plane, then rotates the
second scroll wheel 170 vertically to determine .phi., the vertical
rotation of the spherical cursor perpendicular to the xy-plane, and
rotates the third scroll wheel 180 to determine .rho., 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 .theta. and .phi. 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 .rho. 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
.rho. 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, E1, E2, and E3, 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 .phi. 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 .theta. and .rho.
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 .phi. to the computer system.
Once the user does so, the computer system recognizes the user'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 .phi.; to move from one plane to another, the spherical
coordinate system is used where .phi. is provided with .theta. and
.rho..
[0019] FIG. 7 shows a spherical cursor movement on plane E3 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'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'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 .rho. of the spherical
cursor's direction to the same plane of the building. The openings
are located where there are relatively large changes in the .rho.
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' 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 P1 is dragged in a curvature
movement to a new position, and point P2 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 P1 and P2 is
calculated by targeting the first point P1 by the spherical cursor
then targeting P2. The computer system then calculates the distance
between P1 and P2 by knowing the distance between P0 and P1, and P0
and P2, in addition to the angle between the two lines P0-P1 and
P0-P2, where P0 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' rotations are directly
translated into changes in the virtual camera's orientation. For
example, in some games, the present 3D mouse can control the
direction in which the player'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: .theta., .phi., and
.rho..
[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'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'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 .theta.,
.phi., and .rho. to the computer system to move the spherical
cursor in lines.
[0050] FIG. 25.2 is the order of providing the input for .theta.,
.phi., and .rho. 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 P1 to P2 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'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'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 .theta., .phi., and .rho. to the
computer system, where this simple configuration eases the control
of the spherical cursor. For example, the user can feel the
spherical cursor'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'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'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'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'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'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's
rotation is relative to the value of the user's hand rotation.
[0066] It is important to note that the human hand's joints are
spherical joints and their rotation in three dimensions can be
analyzed in two angles: .theta. and .phi.; 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'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 .theta. and .phi. 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 .theta., the second scroll wheel 200 can be rotated vertically
to provide immediate input for .phi., and the third scroll wheel
210 can be rotated up or down to provide immediate input for .rho.
to the computer system. Also, the first scroll wheel 190 can be
pressed down to function as the regular mouse's left button, and
the second scroll wheel 200 can be pressed laterally to function as
the regular mouse's right button. The user'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's finger with Velcro-like fabric that
allows it to be "one-size-fits-all". Having the cube without any
penetration of the user'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 .theta. 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
.phi., the user rotates the ball vertically from the second section
310 by the middle or ring finger. To provide the input of .rho.,
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'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 .theta. 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 .phi. to the computer system, the
optical sensor detects a movement from left to right or vice versa.
When providing the input of .rho. 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 .theta., .phi., or .rho. is meant by
the 3D trackball's rotation.
[0073] FIG. 16.1 illustrates the present horizontal tilt wheel
which is another computer input device to provide the input for
.theta., .phi., and .rho. 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 .theta. 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'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 .phi., positive input for
.phi., positive input for .rho., or negative input for .rho., 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 .theta., the second scroll wheel 410 on the top
side of the 3D mouse is rotated up or down to provide immediate
input for .phi., and this 3D mouse is moved (similar to the regular
mouse movement on a surface) to provide immediate input for .rho..
In this case, the x and y values of the regular mouse movement are
converted to only one value of .rho. according to the following
equation:
.rho.=(x.sup.2+y.sup.2).sup.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,
.rho.=-(x.sup.2+y.sup.2).sup.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
.theta. 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 .phi. is provided.
Also, moving this 3D mouse after pressing twice on any of the
selection switches provides immediate input for .rho.. However, all
the movements of this 3D mouse for the inputs of .theta., .phi.,
and .rho. convert the x and y movement values to only one value,
according to the following equations:
.theta.=(x.sup.2+y.sup.2).sup.0.5
.phi.=(x.sup.2+y.sup.2).sup.0.5
.rho.=(x.sup.2+y.sup.2).sup.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 .theta., and
rolls up and down to provide immediate input for .phi., in addition
to moving the mouse on a surface to provide immediate input for
.rho. 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 .theta., and vertical scroll wheel 450
that rotates up or down to provide immediate input for .phi., where
the input of .rho. is provided by moving the user'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 .rho., or the finger
movement inwards/closer to the opposite direction of the dotted
line 100 of the spherical cursor provides negative input for
.rho..
[0082] FIG. 21 illustrates a 3D mouse comprised of a horizontal
scroll wheel 480 that rotates clockwise or counterclockwise to
provide immediate input of .theta., vertical scroll wheel 490 that
rotates "up or down" to provide immediate input of .phi., and two
pressure sensitive buttons 500 and 510 that detect the user's
finger pressing to provide, respectively, positive or negative
input for .rho. 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 .theta.
and .phi.. In this case, pressing the horizontal scroll wheel 480
laterally from left to right by the thumb finger provides immediate
positive input for .rho., and pressing the vertical scroll wheel
490 vertically from up to down by the index or middle finger
provides immediate negative input for .rho. to the computer
system.
[0084] All the previous described devices provide the input for
.theta., and .phi. in two steps, step by step, however it is
possible to provide the input for .theta. and .phi. in one step
using the traditional trackball that is manipulated with the palm
or the fingers of the user's hand. Such manipulation can provide
immediate input for .theta., and .phi. one time, and in order to
provide the immediate input for .rho., the user can press laterally
on the left side of this trackball to provide the positive input
for .rho., or press vertically on the top side of this trackball to
provide the negative input for .rho.. 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'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 .theta. 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 .phi. 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 .theta., .phi., and .rho., using the movement
of the user's finger on a touchpad surface that senses the
direction of the finger's motion. Wherein the circular
counterclockwise movement 520 provides positive input for .theta.
and the circular clockwise movement 530 provides negative input for
.theta.. The vertical movement 540 from down to up provides
positive input for .phi., and the vertical movement 550 from up to
down provides negative input for .phi.. Also, the horizontal
movement 560 from left to right provides positive input for .rho.,
and the horizontal movement 570 from right to left provides
negative input for .rho..
[0088] The pointing stick can provide the inputs of .theta., .phi.,
and .rho. to the computer system by moving the finger on the
pointing stick from "left" to "right" to provide positive input for
.theta., and from "right" to "left" to provide negative input for
.theta.. Moving the finger on the pointing stick from "down" to
"up" to provide positive input for .phi., and from "up" to "down"
to provide negative input for .phi.. 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 .rho.,
and inwards/closer to the opposite direction of the dotted line 100
of the spherical cursor to provide negative input for .rho.. 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 .theta..
[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's movements on a surface, whereas these movements
can provide an input for .theta. and .rho. consecutively. The first
step for the user is to provide the input for .theta. 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's movement as an input for .theta..
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 .rho., 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's movement inputs for .theta. and .rho. by measuring the
distance of the mouse's movement on a surface. Assuming this
distance is less than one inch, then the computer system considers
the input as an input for .theta., and if this movement distance is
equal to or greater than one inch, then the computer system
considers this input as an input for .rho.. 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 .theta.. 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'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
.rho.; 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 .theta., 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's movement greater than one inch and, accordingly, it
is considered to be an input for .rho., 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'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'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:
(.theta.+90)>"region 640">(.theta.-90)
(.theta.+90)<"region 650"<(.theta.-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 .theta., .phi., and .rho. to move the spherical cursor on
the computer display where said method comprising the steps of:
[0102] Providing the value of .theta. to the computer system, where
.theta. represents a horizontal rotation of the spherical cursor
about its nock end in the xy-plane where the positive and negative
inputs of .theta. represent, respectively, a horizontal
counterclockwise or clockwise rotation.
[0103] Providing the value of .phi. to the computer system, where
.phi. 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 .phi. represent, respectively, a
vertical counterclockwise or clockwise rotation.
[0104] Providing the value of .rho. to the computer system, where
.rho. represents the spherical cursor movement in a direction
resulting from the horizontal rotation according to the input of
.theta., and/or the vertical rotation according to the input of
.phi., where the positive and negative inputs of .rho. represent,
respectively, moving the spherical cursor inward or backward in
said direction.
[0105] The values of .theta. and .phi. range from 0 to 360, where
the value of 360 represent one complete rotation (in some
applications the value of .theta. and/or the value of .phi. range
from -90 to 90), while the value of .rho. 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
.theta., .phi., and .rho. to the computer system to move the
spherical cursor in line, where as shown in this figure, the input
of .rho. is always the last provided input, where the inputs of
.theta. and/or .phi. are provided before .rho..
[0107] FIG. 25.2 shows another diagrammatic illustration
representing another order of providing the three components
.theta., .phi., and .rho. to the computer system to move the
spherical cursor in a curve, where as shown in this figure; the
value of .rho. is the first one to be provided to the computer
system whether one or both of the two components of .theta., and
.phi. are provided after. In general, the two previous diagrams
illustrate the importance of the order of providing the three
components .theta., .phi., and .rho. 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 .theta.
and .rho. are to be provided to the computer system. In this case,
the value of .theta. is equal to zero and the value of .rho. is
equal to the needed movement distance in the positive direction of
the x-axis, assuming that .rho. 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 .theta. 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 .theta. 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 .theta. 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 .theta. is provided to the
computer system before the value of .rho. 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 .theta. will not be equal to 0, 90, 180,
270, or 360. For example if the value of .theta. 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 .rho. is
equal to 2 which means the spherical cursor movement will be two
units. In FIG. 27.3 the value of .theta. is equal to 300 and the
value of .rho. is equal to 1.5, and in FIG. 27.4 the value of
.theta. is equal to 240.
[0110] The order of providing .theta. then .rho. 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 .theta. and .rho. should be defined to
the computer system. These steps indicate the smallest numerical
unit used that can be multiplied to provide the value of .theta.
and .rho.. For example, if the step of .theta. is equal to 120 and
the step of .rho. 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 .theta. and .rho. 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
.theta. is equal to 90. However, the step of .theta. 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 .theta. is
135, 90 and 135.
[0112] As mentioned previously in the two diagrams in FIGS. 25.1
and 25.2, the order of providing .theta. and .rho. 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 .theta. and .rho. to the computer
system to move the spherical cursor linearly from a start point P1
to a targeted point P2, to define the end point of the curvature
path of the spherical cursor.
[0114] Providing a second input value for .rho. to the computer
system to again move the spherical cursor from P1 to P2 in a
curvature path where the second input value of .rho. 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 P1 to P2 in different curvature paths as
shown in FIG. 30. For example if the second input of .rho. 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 .rho. 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 P1, P2, and P3, where P3 is a point in a distance
perpendicular to the center point of the line P1-P2, where said
distance is equal to the value of the second input of .rho.
multiplied by the distance between P1 and P2 and divided by 180;
accordingly the formed curve is the part of the drawn circle from
p1 to p2 passing on P3.
[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 .theta. and .rho.. However, if the two inputs of
.phi. and .rho. are provided instead, then the spherical cursor
will move in the xz-plane. In this case, if the input of .phi. 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
.theta., which means the value of .theta. 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 .phi. are different than 90 and 270.
[0118] To move the spherical cursor in the yz-plane, the three
values of .theta., .phi., and .rho. should be provided to the
computer system. However, in this case, the value of .theta. 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 .theta., .phi.,
and .rho. 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 .theta., .phi., and .rho.
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 P1 to P2
in three dimensions using the present method whereas in such cases
the method is comprised of the following steps:
[0122] Providing the values of .theta., .phi., and .rho. to the
computer system to move the spherical cursor linearly in three
dimensions from a start point P1 to a targeted point P2, to define
the end point of the curvature path of the spherical cursor in
3D.
[0123] Providing a second input for .rho. to the computer system to
again move the spherical cursor from P1 to P2 in a curvature path
where the second input value of .rho. 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 .rho. between 180 and -180
represents moving the spherical cursor in a curve located between
said two semicircles relative to the second input value of .rho.,
where said semicircle or curve plane is parallel to the x-axis.
[0124] Providing a second input for .theta. to the computer system
where said second input rotates said plane of said circle or curve
about the P1-P2 line, where the second input of .theta. 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 .phi.. The 7.sup.th step 720 is located in the
z-axis direction; thereby there is no indication for .theta.. The
5.sup.th step 700 and 6.sup.th steps 710 indicate .theta. and
.phi.; 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 .theta., .phi., and
.rho..
[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 P1 to a targeted point P2 on the outer
surface of the sphere; the two inputs of .theta. and .phi. are to
be provided to the computer system while the input of .rho. doesn'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 .theta. and .phi. 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 .phi. is equal to zero. Also, the
spherical coordinate system transforms into a Cartesian coordinate
system when the step of .theta. is equal to 90 and the step of
.phi. is equal to 90 as described previously. The cylindrical
coordinate system is a polar coordinate system in three dimensions,
where the inputs of .theta. and .rho. can provide the two
components of the polar coordinate system and the input of .phi.
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's of the pressed buttons by the
ball's rotation enable the computer system to identify which degree
of freedom is meant by the ball'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's movement on the surface to the
computer system, while the present 3D input device can provide an
input for .theta., .phi., and .rho. 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 .theta., .phi., and .rho. 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'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's scroll wheels and can be implemented
by using optical encoding disks including light holes, wherein
infrared LED's shine through the disks; sensors then gather light
pulses to convert the rotation of the scroll wheels into inputs for
.theta., .phi., and .rho.. 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'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'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'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'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'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'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'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.
* * * * *