U.S. patent application number 12/541167 was filed with the patent office on 2011-02-17 for manipulation of 3-dimensional graphical objects or view in a multi-touch display.
Invention is credited to James Thomas Kajiya, Andrew Wilson.
Application Number | 20110041098 12/541167 |
Document ID | / |
Family ID | 43589335 |
Filed Date | 2011-02-17 |
United States Patent
Application |
20110041098 |
Kind Code |
A1 |
Kajiya; James Thomas ; et
al. |
February 17, 2011 |
MANIPULATION OF 3-DIMENSIONAL GRAPHICAL OBJECTS OR VIEW IN A
MULTI-TOUCH DISPLAY
Abstract
A system described herein provides six degrees of freedom with
respect to a three-dimensional object rendered on a multi-touch
display through utilization of three touch points. Multiple axes of
rotation are established based at least in part upon location of a
first touch point and a second touch point on a multi-touch
display. Movement of a third touch point controls appearance of
rotation of the three-dimensional object about two axes, and
rotational movement of the first touch point relative to the second
touch point controls appearance of rotation of the
three-dimensional object about a third axis.
Inventors: |
Kajiya; James Thomas;
(Duvall, WA) ; Wilson; Andrew; (Seattle,
WA) |
Correspondence
Address: |
MICROSOFT CORPORATION
ONE MICROSOFT WAY
REDMOND
WA
98052
US
|
Family ID: |
43589335 |
Appl. No.: |
12/541167 |
Filed: |
August 14, 2009 |
Current U.S.
Class: |
715/849 ;
345/173; 345/419 |
Current CPC
Class: |
G06F 3/04815 20130101;
G06F 3/04883 20130101; G06T 15/20 20130101; G06F 2203/04808
20130101 |
Class at
Publication: |
715/849 ;
345/419; 345/173 |
International
Class: |
G06F 3/048 20060101
G06F003/048; G06T 15/20 20060101 G06T015/20; G06F 3/041 20060101
G06F003/041 |
Claims
1. A method that facilitates rendering a three-dimensional
graphical object on a multi-touch display, the method comprising:
receiving an indication that a first member, a second member, and a
third member of a user are in contact with a touch-sensitive
display surface with respect to the three-dimensional object that
is graphically rendered thereon; establishing a first axis based at
least in part upon a location of the first member on the
touch-sensitive display surface and a location of the second member
on the touch-sensitive display surface; receiving an indication
that the third member is moved along the touch-sensitive display
surface; and causing the three-dimensional graphical object to
appear to rotate in the touch sensitive display surface about the
first axis based at least in part upon the indication that the
third member is moved along the touch-sensitive display
surface.
2. The method of claim 1, wherein the third member is moved
substantially perpendicularly to the first axis.
3. The method of claim 1, further comprising: establishing a second
axis that is substantially perpendicular to the first axis; and
causing the three-dimensional graphical object to appear to rotate
in the touch sensitive display surface about the second axis based
at least in part upon the indication that the third member is moved
along the touch-sensitive display surface.
4. The method of claim 1, further comprising: receiving an
indication that at least one of the first member or the second
member is moved along the touch-sensitive display surface; and
re-establishing the first axis based at least in part upon a new
location of the at least one of the first member or the second
member on the touch-sensitive display surface.
5. The method of claim 1, further comprising: receiving an
indication that the first member of the user is moved along the
touch-sensitive display surface in a first direction; and causing
the three-dimensional graphical object to appear to translate in a
plane that is parallel to a surface of the touch-sensitive display
surface in the first direction.
6. The method of claim 1, further comprising: receiving an
indication that at least one of the first member of the user or the
second member of the user are moved along the first axis on the
touch-sensitive display surface; and altering view depth of the
object based at least in part upon the indication that at least one
of the first member of the user or the second member of the user
has moved along the first axis on the touch-sensitive display
surface.
7. The method of claim 6, wherein movement of the at least one of
the first member of the user or the second member of the user
causes a distance between the first member and the second member to
be increased, and wherein altering view depth of the object
comprises increasing the view depth of the object.
8. The method of claim 6, wherein movement of the at least one of
the first member of the user or the second member of the user
causes a distance between the first member and the second member to
be decreased, and wherein altering view depth of the object
comprises decreasing the view depth of the object.
9. The method of claim 1, further comprising: receiving an
indication that at least one of the first member of the user or the
second member of the user is moved along the first axis on the
touch-sensitive display surface; and altering scale of the
three-dimensional object based at least in part upon the indication
that at least one of the first member of the user or the second
member of the user has moved along the first axis on the
touch-sensitive display surface.
10. The method of claim 9, wherein movement of the at least one of
the first member of the user or the second member of the user
causes a distance between the first member and the second member to
be increased, and wherein altering scale of the object comprises
decreasing the scale of the object.
11. The method of claim 9, wherein movement of the at least one of
the first member of the user or the second member of the user
causes a distance between the first member and the second member to
be decreased, and wherein altering view depth of the object
comprises increasing the scale of the object.
12. The method of claim 1, further comprising: detecting that the
third member of the user is moved substantially perpendicularly to
the first axis along the touch-sensitive display apparatus; and
restricting appearance of rotation of the three-dimensional object
to rotation about the first axis.
13. The method of claim 1, further comprising: establishing the
first axis based at least in part upon an order in time in which
the first member, the second member, and the third member are
placed in physical contact with the touch-sensitive display
surface.
14. The method of claim 1, wherein the first axis is established
through a centroid of the graphical object, wherein the first axis
is substantially parallel to a line made by the first member of the
user and the second member of the user.
15. The method of claim 1, wherein the first axis is between the
first member of the user and the second member of the user.
16. The method of claim 1, further comprising: receiving an
indication of pressure applied to the touch-sensitive display
apparatus by at least one of the first member, the second member,
or the third member; and causing the three-dimensional graphical
object to appear to rotate about the first axis based at least in
part upon the indication of pressure.
17. A system that facilitates rendering a three-dimensional
graphical object on a touch-sensitive display surface comprising
the following computer-executable components: a receiver component
that receives an indication that a first member, a second member,
and a third member are in contact with the touch-sensitive display
surface at a first touch point, a second touch point, and a third
touch point, respectively; an axis establisher component that
establishes a first axis based at least in part upon the first
touch point and the second touch point; a movement tracker
component that determines that the third touch point has moved
along the touch-sensitive display surface from a first location to
a second location on the touch-sensitive display; and a rotator
component that causes the object to appear to rotate about the
first axis upon the movement tracker component determining that the
third touch point has moved along the touch-sensitive display
surface from the first location to the second location on the
touch-sensitive display.
18. The system of claim 17, wherein the axis establisher component
establishes a second axis that is substantially perpendicular to
the first axis, and wherein the rotator component causes the object
to appear to rotate about the second axis upon the movement tracker
component determining that the third touch point has moved along
the touch-sensitive display from the first location to the second
location on the touch-sensitive display surface.
19. The system of claim 17, wherein a mobile computing device
comprises the receiver component, the axis establisher component,
the movement tracker component, and the rotator component.
20. A computer-readable medium comprising instructions that, when
executed by a processor, cause the processor to perform acts
comprising: detecting that a first member of a user has come into
contact with a touch-sensitive display with respect to a
three-dimensional object displayed on the touch-sensitive display
at a first location at a first time; detecting that a second member
of the user has come into contact with the touch-sensitive display
with respect to the three-dimensional object at a second location
at a second time, wherein the second time is equal than or greater
to the first time; establishing an axis through a centroid of the
three-dimensional object, wherein orientation of the axis is based
at least in part upon the first location and the second location;
subsequent in time to establishing the axis, detecting that a third
member of the user has come into contact with the touch-sensitive
display with respect to the three-dimensional object at a third
location; detecting that the third member moves along the touch
sensitive display in a direction that is substantially
perpendicular to the axis; and causing the three-dimensional
graphical object to appear to rotate in the touch-sensitive display
apparatus about the axis upon detecting that third member moves
along the touch sensitive display in a direction that is
substantially perpendicular to the axis.
Description
BACKGROUND
[0001] Touch screen technology has advanced in recent years such
that touch screen technology can be found in many consumer-level
devices and applications. For example, banking machines often
include a touch-sensitive graphical user interface that allows
users to select a function (e.g., withdrawal or deposit) and an
amount for withdrawal or deposit. In another example, mobile
telephones or mobile media players can include touch screen
technology, wherein such technology can be employed in connection
with user selection of graphical icons on an interactive interface
with the use of a stylus. In still yet another example, some laptop
computers are equipped with touch screen technology that allows
users to generate signatures, select applications, and perform
other tasks with the use of a stylus or their fingers.
[0002] The popularity of touch screen technology has increased due
to ease of use, particularly for novice computer users. For
instance, novice computer users may find it more intuitive to
select a graphical icon by hand than to select the icon through use
of various menus and a pointing and clicking mechanism, such as a
mouse. In currently available systems, users can select, move,
modify, or perform other tasks on objects that are visible on a
display screen by selecting such objects (e.g., with a stylus or
their finger).
[0003] A common problem in applications that need three-dimensional
interfaces, such as mechanical computer-aided drafting
applications, computer game programming applications, animation
software, and general three-dimensional user interfaces is that it
is difficult to position and orient rigid objects. Unlike objects
in a two-dimensional plane, which only have two translational and
one rotational degree of freedom, objects in three-dimensional
space have three translational and three rotational degrees of
freedom.
[0004] Some current techniques for manipulating three dimensional
objects on a graphical user interface use special hardware
interfaces, such as virtual reality gloves, which can be used to
grab objects and place them in space. Another example hardware
interface is a six degree of freedom input device such as a
spaceball. These hardware solutions tend to be relatively
expensive. Software-based methods using ordinary mice, trackballs,
and keyboards are cheap but inadequate in that users often find
three dimensional objects difficult to control when using such
software-based methods. That is, the behaviour of the object on the
screen is non-intuitive to the point that positioning and orienting
a three-dimensional object precisely is extremely difficult.
[0005] As indicated above, touch screen technology has become more
prevalent, particularly in connection with mobile devices such as
portable telephones and portable media players. Many of these touch
sensitive display devices include multi-touch functionality, such
that a user can utilize multiple members (fingers) to cause objects
to act in a particular manner. Conventionally, there is no suitable
manner to position and orient a three-dimensional object rendered
in a graphical user interface on a multi-touch display surface.
SUMMARY
[0006] The following is a brief summary of subject matter that is
described in greater detail herein. This summary is not intended to
be limiting as to the scope of the claims.
[0007] Various technologies pertaining to rendering
three-dimensional objects on a multi-touch display are described in
detail herein. Specifically, technologies that facilitate
positioning and orienting three-dimensional objects with six
degrees of freedom are described in detail herein. The multi-touch
display may have a three-dimensional object displayed thereon that
can be translated and rotated in three-dimensional space, or can be
made to appear as if the three-dimensional object is translated and
rotated in three-dimensional space (e.g., the camera can be moved
while the object remains in a constant position). This appearance
of translation and/or rotation can be accomplished through
utilization of one or more touch points. For instance, a user can
utilize a first member and a second member to establish a first
axis of rotation with respect to the three-dimensional object,
wherein the first axis of rotation lies in a plane that is
substantially parallel to the surface of the multi-touch display.
For example, the first axis of rotation can be established through
the centroid of the three-dimensional object, where orientation of
the first axis can be substantially parallel to a line between the
first touch point and the second touch point. The user may then
utilize a third member to cause the three-dimensional object to
rotate about such first axis. For instance, the user can move a
third finger over the touch-sensitive display in a direction that
is substantially perpendicular to the line between the first touch
point and the second touch point. This can cause the
three-dimensional object to appear to be rotated about the first
axis (e.g., the three-dimensional object can be rotated about the
first axis or a camera capturing the three-dimensional object can
be rotated about the first axis).
[0008] Additionally, a second axis that is in the plane that is
substantially parallel to the surface of the multi-touch display
can be automatically generated, wherein such second axis is
substantially perpendicular to the first axis. The user may also
cause the three-dimensional object to appear to rotate about such
second axis. In an example, the user can move the third member in a
direction that is substantially parallel to the line that connects
the first touch point and the second touch point, and movement of
such third member can cause the three-dimensional object to appear
to rotate about such second axis.
[0009] Additionally, the user may employ two members to cause the
three-dimensional object to appear to rotate about a z-axis (e.g.,
the axis that is substantially perpendicular to the plane of the
surface of the multi-touch apparatus). In an example, the user can
cause the three-dimensional object to appear to rotate about such
z-axis by rotating the first touch point and/or the second touch
point with respect to the second touch point and/or the first touch
point, respectively on the multi-touch display. Direction of
movement of the first touch point and/or second touch point
relative to the other touch point can control direction of
appearance of rotation about the z-axis.
[0010] Furthermore, the user can employ two touch points to change
the scale of the three-dimensional graphical object or change the
view depth of the three-dimensional graphical object. For instance,
by increasing distance between the first and second touch point,
the user can cause the three-dimensional graphical object to be
scaled upwardly (e.g., the size of the three-dimensional graphical
object can be increased). By decreasing the distance between the
first and second touch points, the user can cause the
three-dimensional graphical object to be scaled downwardly. In
another embodiment, rather than altering the scale of the graphical
object, changing distance between the first and second touch points
can cause the view depth to be altered. For instance, increasing
distance between the first and second touch points can cause the
view distance to be decreased while decreasing distance between the
first and second touch points can cause the view depth to be
decreased.
[0011] Other aspects will be appreciated upon reading and
understanding the attached figures and description.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] FIG. 1 is a functional block diagram of an example system
that facilitates providing six degrees of freedom with respect to a
graphical object on a multi-touch display.
[0013] FIG. 2 is an example depiction of orientation of three touch
points that cause a three-dimensional graphical object to appear to
be rotated about an axis in a multi-touch display.
[0014] FIG. 3 is an example depiction of orientation of three touch
points that cause a three-dimensional graphical object to appear to
be rotated about an axis in a multi-touch display.
[0015] FIG. 4 is a graphical depiction illustrating utilization of
two touch points on a multi-touch apparatus to cause a
three-dimensional object to appear to rotate about a z-axis.
[0016] FIG. 5 is a graphical depiction of utilization of three
touch points to cause a three-dimensional graphical object to
appear to revolve and rotate about an axis in a multi-touch
display.
[0017] FIG. 6 is a graphical depiction of utilization of three
touch points on a multi-touch display to cause a three-dimensional
object to appear to revolve and rotate about an axis.
[0018] FIGS. 7A, 7B, and 7C illustrate altering scale or view depth
pertaining to a three-dimensional object in a multi-touch
display.
[0019] FIG. 8 is a flow diagram that illustrates an example
methodology for causing a three-dimensional graphical object to
appear to rotate in a multi-touch display about an axis defined by
two touch-points.
[0020] FIG. 9 is a flow diagram that illustrates an example
methodology for causing a three-dimensional graphical object to
appear to rotate about an axis in a multi-touch display, wherein
the axis is defined by an order of touch-points.
[0021] FIG. 10 is an example computing system.
DETAILED DESCRIPTION
[0022] Various technologies pertaining to multi-touch displays will
now be described with reference to the drawings, where like
reference numerals represent like elements throughout. In addition,
several functional block diagrams of example systems are
illustrated and described herein for purposes of explanation;
however, it is to be understood that functionality that is
described as being carried out by certain system components may be
performed by multiple components. Similarly, for instance, a
component may be configured to perform functionality that is
described as being carried out by multiple components.
[0023] With reference to FIG. 1, an example system 100 that
facilitates providing six degrees of freedom with respect to a
three-dimensional graphical object displayed on a multi-touch
display is illustrated. For instance, the system 100 may be
included in a portable multi-touch apparatus, such as a multimedia
device, a portable telephone, a laptop, or other suitable device.
In another example, the system 100 may be included in a desktop
computer, a multi-touch tabletop surface computing device, or other
suitable computing device.
[0024] The system 100 includes a touch-sensitive display surface
102 that has multi-touch functionality associated therewith. Thus,
multiple members may be utilized to interact with graphical items
displayed on the touch-sensitive display surface 102. The
touch-sensitive display surface 102 may be or include any suitable
touch-sensitive display technology including but not limited to
resistive technologies, surface acoustic wave technologies,
capacitive technologies, projected capacitive technologies,
infrared technologies, strain gauge technologies, optical imaging
technologies, dispersive signal technologies, acoustic pulse
recognition technologies, or any other suitable technologies that
can be utilized in connection with detecting multiple touches on
the touch-sensitive display surface 102.
[0025] A three-dimensional object 104 is displayed on the
touch-sensitive display surface 102. The system 100 includes a
receiver component 106 that can receive an indication that multiple
members of a user (multiple fingers/thumbs) are in contact with the
touch-sensitive display surface 102 with respect to the
three-dimensional object 104. Furthermore, the receiver component
106 can receive indications pertaining to an order that the members
came into contact with the touch-sensitive display surface 102. For
instance, the receiver component 106 can first receive an
indication that a first member has come into contact with a
touch-sensitive display surface 102 at a first touch point 108,
that a second member has come into contact with the touch-sensitive
display surface 102 thereafter at a second touch point 110, and
that a third member of the user has come into contact with the
touch-sensitive display surface 102 at a third touch point 112
after the second member has come into contact with the
touch-sensitive display surface 102. Additionally or alternatively,
the receiver component 106 can receive an identity of which member
has come into contact with the touch-sensitive display surface 102
at particular touch points. For example, it can be ascertained that
the first touch point 108 corresponds to a pointer finger of a
certain hand of the user, the second touch point 110 corresponds to
a thumb of a certain hand of the user, and the third touch point
112 corresponds to a middle finger of a certain hand of the user.
Determining identities of members that come into contact with the
touch-sensitive display surface 102 can be undertaken, for
instance, through fingerprint analysis, by analyzing size and shape
of touch points, by inferring which members correspond to which
touch points based upon pressure applied to the touch-sensitive
display surface, or other suitable technique.
[0026] The system 100 further includes an axis establisher
component 114 that is in communication with the receiver component
106 and can receive data pertaining to the touch points 108-112
from the receiver component 106. For instance, the axis establisher
component 114 can receive an indication of an order of occurrence
of the touch points 108-112 on the touch-sensitive display surface
102. In another example, the axis establisher component 114 can
receive identities of members that correspond to the touch points
108-112. Based at least in part upon locations on the
touch-sensitive display surface 102 of two of the touch points
108-112, the axis establisher component 114 can establish a first
axis about which the three-dimensional graphical object can be
rotated. For instance, the axis establisher component 114 can
establish such first axis based at least in part upon an order that
the touch points 108-112 where established on the touch-sensitive
display surface 102. For example, the axis establisher component
114 can establish the first axis based upon locations of the first
two touch points that occurred in time (when compared to the third
touch point).
[0027] Thus, if the touch point 108 was established first in time
when compared to the touch points 110 and 112, and the touch point
110 was established prior to the touch point 112 being established,
then the axis establisher component 114 can establish the
aforementioned first axis based at least in part upon the location
of the first touch point 108 and the location of the second touch
point 110 on the touch-sensitive display surface 102. Additionally,
if the first touch point 108 and/or the second touch point 110
change location (e.g., the user moves the first member and/or the
second member along the touch-sensitive display surface 102), the
axis establisher component 114 can re-establish the first axis
based at least in part upon the new position(s) of the first touch
point 108 and/or the second touch point 110.
[0028] In another embodiment, the axis establisher component 114
can establish the first axis based at least in part upon identities
of members utilized to establish the touch points. Thus, the axis
establisher component 114 can establish the first axis based upon
locations of touch points pertaining to, for instance, a middle
finger and a thumb of the user regardless of an order that the user
placed members on the touch-sensitive display surface 102.
[0029] The first axis established by the axis establisher component
114 can be in a plane that is substantially parallel to the
touch-sensitive display surface 102. For instance, the first axis
can be established through a centroid of the three-dimensional
graphical object 104 in the plane that is substantially parallel
with the touch-sensitive display surface 102, wherein the
orientation of the first axis is substantially parallel to a line
that connects the first touch point 108 and the second touch point
110. In yet another example, as will be shown in detail below, the
first axis established by the axis establisher component 114 may be
the line that connects the first touch point 108 and the second
touch point 110 (e.g., the first axis connects the touch points 108
and 110).
[0030] Furthermore, the axis establisher component 114 can
establish a second axis that is substantially perpendicular to the
aforementioned first axis, wherein the second axis also lies in the
plane that is substantially parallel to the touch-sensitive display
surface 102. Again, for instance, the second axis may be positioned
through the centroid of the three-dimensional graphical object 104.
In an alternative embodiment, where the first axis connects the
first touch point 108 and the second touch point 110, the axis
establisher component 114 can establish the second axis at
substantially the midpoint between the first touch point 108 and
the second touch point 110, for instance, wherein the second axis
is again substantially perpendicular to the first axis. In such an
embodiment, the three-dimensional object 104 can be revolved and
rotated about the second axis.
[0031] The system 100 additionally includes a movement tracker
component 116 that can determine that the third touch point 112 has
moved along the touch-sensitive display surface 102. For instance,
the third touch point 112 may transition from a first location on
the touch-sensitive display surface 102, along the touch-sensitive
display surface 102, to a second location. Pursuant to an example,
the movement tracker component 116 can monitor movement of the
third touch point 112 to ensure that the third touch point 112
remains on the touch-sensitive display surface 102 (e.g., the user
does not pick up the third member).
[0032] A rotator component 118 can be in communication with the
movement tracker component 116, and can cause a three-dimensional
object 104 to appear to rotate about at least one of the first axis
and the second axis established by the axis establisher component
114 based at least in part upon movement of the third touch point
112 detected by the movement tracker component 1 16. As used
herein, the term "appear to rotate" is intended to encompass
rotation of the three-dimensional object 104 about the first axis
and/or the second axis as well as rotation of a viewing perspective
(e.g., a camera) about the first axis and/or the second axis. In
the case where the three-dimensional object rotates about the axis,
coordinates of the three-dimensional object can change. In the case
where the viewing perspective rotates, the coordinates of the
three-dimensional object remain unchanged. Whether the
three-dimensional object rotates about the first axis and/or the
second axis or the viewing perspective rotates about the first axis
and/or second axis can be based upon user commands.
[0033] In an example, if the third touch point 112 is moved
substantially perpendicularly to the first axis established by the
axis establisher component 114, then the rotator component 118 can
cause the three-dimensional graphical object 104 to appear to
rotate about the first axis. In another example, if the movement
tracker component 116 detects that the third touch point 112 is
moved substantially parallel to the first axis, then the rotator
component 118 can cause a three-dimensional graphical object 104 to
appear to be rotated about the second axis. In still yet another
example, if the movement tracker component 116 detects that the
third touch point 112 is moved in a diagonal manner from the first
axis, then the rotator component 118 can cause the
three-dimensional graphical object 104 to appear to be rotated
simultaneously about the first axis and the second axis in a
direction that corresponds to movement of the third touch point
112.
[0034] In an example embodiment, the rotator component 118 can be
configured to restrict appearance of rotation about the first axis
or the second axis (e.g., upon a choice being made by the user).
For instance, the user may not be able to sufficiently control
movement of the third touch point 112 with a third member (e.g.,
the user thinks she is moving the third touch point 112
substantially perpendicular to the first axis but is in actuality
moving the third touch point 112 diagonally from the first axis).
Then the user can restrict appearance of rotation about a desired
axis (e.g., movement of the third touch point 112 in a direction
inconsistent with the desired rotation may be zeroed out).
[0035] The system 100 may further include a pressure sensor
component 120 that is configured to detect a pressure that is
applied by one or more of the members of the user that correspond
to the touch points 108-112. For instance, the touch-sensitive
display surface 102 may be configured with technologies that allow
pressure applied to the touch-sensitive display surface 102 to be
ascertained. In an example, size of a touch point can be indicative
of pressure applied to the touch-sensitive display surface 102, as
a touch point of greater size indicates that a greater surface area
of a member of the user is in physical contact with the
touch-sensitive display surface 102, and thus a greater amount of
pressure is being applied to the touch-sensitive display surface
102 when compared with a size other touch points. In another
example, the touch-sensitive display surface 102 can be associated
with some sort of stress gauge technology that detects an amount of
stress corresponding to one or more of the touch points
108-112.
[0036] The pressure sensor component 120 can be in communication
with the rotator component 118, and can provide the rotator
component 118 with pressure sensed in connection with the touch
points 108-112. The rotator component 118 can cause the
three-dimensional graphical object 104 to appear to rotate in the
touch-sensitive display surface 102 based at least in part upon
pressure sensed by the pressure sensor component 120 corresponding
to at least one of the touch points 108-112. For instance, the
pressure sensor component 120 can cause speed of rotation to be
dependent at least in part upon the pressure as detected by the
pressure sensor component 120. For example, if the user applies a
relatively large amount of pressure with respect to touch points
108 and 110, the rotator component 118 can cause the
three-dimensional graphical object 104 to appear to rotate in a
certain direction about the first axis established by the axis
establisher component 114. In anther example, the pressure applied
by a third member corresponding to the third touch point 112 may be
used to control speed of appearance of rotation about either the
first axis or the second axis established by the axis establisher
component 114.
[0037] The system 100 may further include a translator component
122 that is in communication with the movement tracker component
116. The translator component 122 can be configured to cause the
three-dimensional object 104 to appear to be moved in the plane
that is substantially parallel to the touch-sensitive display
surface 102 (e.g., the three-dimensional object 104 can be
translated or a viewing perspective can be translated). In an
example, the touch point amongst the plurality of touch points
108-112 that is associated with an earliest instance in time when
compared with instances in time corresponding to the other touch
points can be used to translate the three-dimensional object 104 in
the plane that is parallel to the touch-sensitive display surface
102. Thus, the user may use a single finger, select the
three-dimensional graphical object 104, and move the
three-dimensional graphical object 104 to a location in the
touch-sensitive display surface desired by the user.
[0038] Furthermore, ordering of touch points 108-112 can be
remembered, such that if the user is utilizing three touch points
to rotate the three-dimensional graphical object 104 and thereafter
removes members 110 and 112 to eliminate such touch points, then
the touch point 108 may still be employed to translate the
graphical object 104 in the plane that is substantially parallel to
the touch-sensitive display surface 102. Moreover in an example, as
members are removed from the touch-sensitive display surface 102,
order can be reassigned. However, in some cases the user may remove
a member from the touch-sensitive display surface 102 accidentally.
Accordingly, an amount of time that a member is removed from
contact with the touch-sensitive display surface can be considered
and, if less than a threshold, the ordering of touch points can
remain unchanged. In another example, an amount of space between
subsequent contacts by a member can be considered when determining
whether to re-assign order (e.g., to determine whether the user
intended to remove their finger from the touch-sensitive display
surface 102). In yet another example, both time and space can be
considered when determining whether the user intended to remove a
member from the touch-sensitive display surface 102.
[0039] A scaler component 124 may also be in communication with the
movement tracker component 116, and can cause the three-dimensional
graphical object 104 to be scaled in the touch-sensitive display
surface 102 based at least in part upon movement of at least one of
the first touch point 108 and the second touch point 110 (if such
touch points 108 and 110 are used by the axis establisher component
114 to establish the first and second axis). For instance, if the
user moves the first member or second member to cause the distance
between the first touch point 108 and the second touch point 110 to
be decreased, then the scaler component 124 can decrease the scale
corresponding to the three-dimensional graphical object 104,
thereby causing the three-dimensional graphical object 104 to
become smaller. Thus, the user may move both the first member and
the second member towards one another along the first axis
established by the axis establisher component 114 to cause the
three-dimensional graphical object 104 to be reduced in size. In
another example, the user may cause the distance between the first
touch point 108 and the second touch point 110 to be increased
(e.g., by moving one or both of the first member and the second
member), and the scaler component can cause the three-dimensional
graphical object 104 to be increased in size.
[0040] In another example embodiment, rather than altering scale of
the three-dimensional graphical object 104 when distance between
the two touch points is altered, a view depth pertaining to the
graphical object 104 can be altered. Thus, the system 100 may
include a depth alterer component 126 that alters the view depth of
the user with respect to the three-dimensional graphical object 104
based at least in part upon an alteration in distance between the
first touch point 108 and the second touch point 110. For instance,
if the user causes the distance between the first touch point 108
and the second touch point 110 to be decreased, the depth alterer
component 126 can cause a view depth pertaining to the
three-dimensional graphical object 104 and the user to be
increased. This has the effect, for example, of moving a camera
away from the three-dimensional graphical object 104.
Alternatively, if the user causes the distance between the first
touch point and the second touch point 110 to be increased, the
depth alterer component 126 can decrease the view depth (e.g., the
camera can be moved closer to the three-dimensional graphical
object 104). These and other features will be described with
graphical depictions herein.
[0041] It is to be understood that the rotator component 118, the
translator component 122, the scaler component 124, and/or the
depth alterer component 126 can act in conjunction to cause the
three-dimensional object 104 to appear to be rotated, scaled,
and/or translated simultaneously based at least in part upon
movement of touch points along the touch-sensitive display surface
102 detected by the movement tracker component 116. Moreover, it is
to be understood that other objects may appear with the
three-dimensional object 104 on the touch-sensitive display surface
102. In such a case, if the three-dimensional object 104 is
rotated/scaled/translated, appearance of other objects on the
touch-sensitive display surface will remain unchanged while the
appearance of the three-dimensional object 104 is altered. If the
viewing perspective is rotated, translated, or otherwise altered,
the appearance of other objects in a scene with the
three-dimensional object 104 will also change.
[0042] Referring now to FIG. 2, an example graphical depiction 200
illustrating a three-dimensional graphical object being rotated
about an axis defined by two touch points is illustrated. While the
examples shown and described herein refer to rotation of a
three-dimensional graphical object being rotated about an axis, it
is to be understood that the viewing perspective of a user can be
rotated about the axis. The graphical depiction 200 includes a
first touch point 202, which is established by a user placing a
first member in contact with a touch-sensitive display surface. The
graphical depiction 200 also includes a second touch point 204 that
is established by the user placing a second member in contact with
the touch-sensitive display surface. A line 206 is provided to
illustrate a connection between the first touch point 202 and the
second touch point 204. Once the first touch point 202 and the
second touch point 204 are established, a first axis 208 can be
established through a centroid of a three-dimensional graphical
object 210 displayed on the touch sensitive display surface. As can
be ascertained, the first axis 208 is substantially parallel to the
line 206 that connects the first touch point 202 and the second
touch point 204.
[0043] To rotate the three-dimensional graphical object 210, the
user can move a third member to cause a third touch point 212 to be
moved along the touch-sensitive display surface substantially
perpendicularly to the first axis 208. For instance, if the user
causes the third touch point 212 to be moved closer to the line
206, then the three-dimensional graphical object 210 can be rotated
in a first direction about the first axis 208. If the user causes
the third touch point 212 to be moved further away from the line
206, then the three-dimensional graphical object 210 can be rotated
about the first axis 208 in a second direction that is opposite the
first direction.
[0044] With reference now to FIG. 3, a graphical depiction 300 of a
three-dimensional object being rotated about a second axis is
illustrated. The graphical depiction 300 includes the first touch
point 202, the second touch point 204, and the third touch point
212. The graphical depiction 300 also includes the
three-dimensional graphical object 210 and the first axis 208. Upon
the first touch point 202 and the second touch point 204 being
established (e.g., the first two touch points established with
respect to a touch-sensitive display surface), the first axis 208
can be created, wherein the first axis is substantially parallel to
the line 206 connecting the first touch point 202 and the second
touch point 204. Additionally, a second axis 302 can be established
through the centroid of the three-dimensional graphical object 210,
wherein the second axis 302 is substantially perpendicular to the
first axis 208 and is in the same plane as the first axis 208
(e.g., the plane that is substantially parallel to the touch
sensitive display surface).
[0045] To cause the three-dimensional graphical object 210 to
rotate about the second axis 302, the user can cause the third
touch point 212 to be moved substantially parallel to the line 206
connecting the first touch point 202 and the second touch point 204
(and also substantially parallel to the first axis 208 and
substantially perpendicular to the second axis 302). For instance,
if the user causes the third touch point 212 to be moved toward the
first touch point 202, the three-dimensional graphical object 210
can be rotated about the second axis 302 in a first direction, and
if the user causes the third touch point 212 to be moved closer to
the second touch point 204 (substantially parallel to the line
206), then the three-dimensional graphical object 210 can be
rotated about the second axis 302 in a second direction that is
opposite the first direction. If the user causes the third touch
point 212 to be moved in a manner that is diagonal to the line 206,
then the three-dimensional graphical object 210 can be rotated
about both the first axis 208 and the second axis 302.
[0046] With reference now to FIG. 4, an example graphical depiction
400 that illustrates rotation of a three-dimensional graphical
object about a z axis in a touch-sensitive display surface is
illustrated. The graphical depiction 400 includes the first touch
point 202 and the second touch point 204, which when established
can cause creation of the first axis 208 and the second axis 302 as
described above, through the centroid of the three-dimensional
graphical object 210. When such touch points are established, a z
axis 402 can be established through the centroid of the
three-dimensional graphical object 210, wherein the z axis is
substantially perpendicular to a plane established by the first
axis 208 and the second axis 302 (e.g., substantially perpendicular
to a plane of the touch-sensitive display surface).
[0047] To cause the three-dimensional graphical object 210 to be
rotated about the z axis 402, the user can cause the first touch
point 202 and/or the second touch point 204 to be rotated with
respect to one another. For instance, the user can cause the second
touch point to be anchored while moving the first touch point 202
in a direction that is substantially perpendicular to the line 206
that connects the first point 202 and the second touch point 204.
Causing the first touch point 202 to be moved with respect to the
second touch point 204 in such a way can cause the graphical object
210 to be rotated about the z axis in a direction consistent with
direction of movement of the first touch point 202 with respect to
the second touch point 204. In another example, the user can
simultaneously move the first touch point 202 and the second touch
point 204 to rotate such touch points 202 and 204 about an axis
that is proximate to a center point of the line 206. Again, this
can cause the three-dimensional graphical object 210 to be rotated
about the z axis 402 in a direction consistent with the rotation of
the first and second touch points 202 and 204.
[0048] Now referring to FIG. 5, an example graphical depiction 500
of a three-dimensional graphical object being rotated and revolved
about an axis established by two touch points is illustrated. In
the example depicted in the graphical depiction 500 of FIG. 5, a
line 206 connecting the first touch point 202 and the second touch
point 204 can act as an axis of rotation as well as an axis of
revolution. Thus, the user can cause the third touch point 212 to
be moved substantially perpendicularly to the line 206 (the axis of
rotation and revolution), which can cause the three-dimensional
graphical object 210 to simultaneously rotate and revolve about the
line 206. Direction of rotation/revolution can depend upon
direction that the third touch point 212 is moved (e.g., either
toward the line 206 or away from the line 206).
[0049] Turning now to FIG. 6, an example graphical depiction 600
that facilitates rotating/revolving the graphical object 210 about
a second axis of rotation/revolution is illustrated. In this
example, when the first and second touch points 202 and 204 are
established on a touch-sensitive display surface, a second axis 602
can be created, wherein the second axis is perpendicular to the
line 206 that connects the first touch point 202 and the second
touch point 204, and is at approximately a center point of the line
206. The user can utilize the third touch point 212 to cause the
three dimensional graphical object 210 to revolve and rotate about
the second axis 602, depending on direction of movement of the
third touch point 212 along the touch-sensitive display surface.
For example, if the user causes the third touch point 212 to be
moved closer to the first touch point 202, then the three
dimensional graphical object 210 can be revolved/rotated about the
second axis 602 in a first direction, while if the user causes the
third touch point 212 to be moved farther from the first touch
point 202 (toward the second touch point 204), the
three-dimensional graphical object 210 can be revolved/rotated in a
second direction that is opposite the first direction. While not
shown, location of a z-axis can be established at the intersection
of the line 206 and the second axis 602, and the three-dimensional
graphical object 210 can be revolved/rotated about the z-axis by
rotating the first touch point 202 and the second touch point 204
with respect to one another.
[0050] With reference now to FIG. 7A, an example depiction 700 of a
three-dimensional graphical object being scaled and/or viewed
pertaining to three-dimensional graphical object being altered is
illustrated. In the example shown in FIG. 7A, a first touch point
702 and a second touch point 704 are established with respect to a
three-dimensional graphical object 706 on a touch-sensitive display
surface.
[0051] Referring to FIG. 7B, another example depiction 708 is
illustrated, wherein such depiction illustrates that the user can
cause a distance between the first touch point 702 and the second
touch point 704 to be increased by moving one or more of the first
touch point 702 and the second touch point 704 away from the other
respective touch points. In a first embodiment, this can cause a
scale of the three-dimensional graphical object 706 to be
increased, such that the three-dimensional graphical object 706 is
made larger. In a second embodiment, changing the distance between
the first and second touch points 702 and 704 can cause a view
depth pertaining to the three-dimensional graphical object 706 to
be decreased, such that the three-dimensional graphical object 706
is not scaled, but is just shown to be closer in distance to the
viewer.
[0052] Turning to FIG. 7C, another example depiction 710 is
illustrated, wherein such depiction illustrates that the user can
cause a distance between the first touch point 702 and the second
touch point 704 to be decreased by moving either or both of the
first touch point 702 and the second touch point 704 closer to one
another. In a first example, this can cause a scale of the
three-dimensional graphical object 706 to be decreased, thereby
causing the three-dimensional graphical object 706 to become
smaller. In a second example, decreasing the distance between the
first touch point 702 and the second touch point 704 can cause the
view depth to become greater, thereby effectively increasing a
distance between the viewer and the three-dimensional graphical
object 706. Whether the graphical object 706 is scaled or a view
depth is changed upon changing distance between the first and
second touch points 702 and 704 may depend upon an application,
and/or can be selected by the user. While not shown, a single touch
point can be used to either move the three dimensional graphical
object 706 in space along a plane substantially parallel to the
touch-sensitive display surface without rotating or scaling the
three-dimensional graphical object 706. In another example, rather
than moving the three-dimensional graphical object 706, a single
touch point can be used to alter the position of view of the user
such that position of the three-dimensional graphical object 706
remains the same, but a view position of the user in the plane
alters. Again, this can be a feature that can be selected by a user
or dependent upon an application.
[0053] With reference now to FIGS. 8 and 9, various example
methodologies are illustrated and described. While the
methodologies are described as being a series of acts that are
performed in a sequence, it is to be understood that the
methodologies are not limited by the order of the sequence. For
instance, some acts may occur in a different order than what is
described herein. In addition, an act may occur concurrently with
another act. Furthermore, in some instances, not all acts may be
required to implement a methodology described herein.
[0054] Moreover, the acts described herein may be
computer-executable instructions that can be implemented by one or
more processors and/or stored on a computer-readable medium or
media. The computer-executable instructions may include a routine,
a sub-routine, programs, a thread of execution, and/or the like.
Still further, results of acts of the methodologies may be stored
in a computer-readable medium, displayed on a display device,
and/or the like.
[0055] Referring now to FIG. 8, a methodology 800 that facilitates
causing a three-dimensional graphical object to appear to rotate in
a touch-sensitive display utilizing three touch points is
illustrated. The methodology 800 begins at 802, and at 804 an
indication that a first member, a second member, and a third member
of a user are in contact with a touch-sensitive display screen with
respect to a three-dimensional graphical object that is graphically
rendered thereon is received. For instance, the first member, the
second member, and the third member can create three touch points
on the touch-sensitive graphical display.
[0056] At 806, a first axis is established based at least in part
upon a location of the first member on the touch-sensitive display
screen and a location of the second member on the touch-sensitive
display screen (e.g., the locations of the first and second touch
points).
[0057] At 808, an indication is received that the third member is
moved along the touch-sensitive display screen. For instance, the
third member can be moved in a direction that is substantially
perpendicular to the first axis established at 806.
[0058] At 810, the three-dimensional graphical object is caused to
appear to be rotated in the touch-sensitive display screen about
the first axis based at least in part upon the indication that the
third member has moved along the touch sensitive display screen.
The methodology 800 completes at 812.
[0059] With reference now to FIG. 9, an example methodology 900
that facilitates causing a three-dimensional graphical object to
appear to be rotated about an axis of rotation based at least in
part upon location and/or movement of three touch points on a
touch-sensitive display surface is illustrated. The methodology
starts at 902, and at 904 a detection is made that a first member
of a user has come into contact with a touch-sensitive display
surface with respect to a three-dimensional object displayed on the
touch-sensitive display surface at a first location at a first
time.
[0060] At 906, a detection is made that a second member of the user
has come into contact with the touch-sensitive display surface with
respect to the three-dimensional object displayed on the
touch-sensitive display surface at a second location at a second
time. In an example, the second time can be equal to or greater to
the first time, such that the second member was placed on the
touch-sensitive display at substantially the same time that the
first member was placed on the touch-sensitive display or
thereafter.
[0061] At 908 an axis is established through a centroid of the
three-dimensional graphical object, wherein an orientation of the
axis is based at least in part upon the first location and the
second location corresponding to the first member and the second
member.
[0062] At 910, subsequent in time to establishing the axis, a
detection is made that a third member of the user has come in
contact with the touch-sensitive display apparatus with respect to
the three dimensional graphical object. At 912, a detection is made
that the third member is moved along the touch-sensitive display in
a direction that is substantially perpendicular to the axis
established at 908.
[0063] At 914, the three-dimensional graphical object is caused to
appear to rotate about the axis in the touch-sensitive display upon
detecting that the third member moves along the touch-sensitive
display in a direction that is substantially perpendicular to the
axis. The methodology 900 completes at 916.
[0064] Now referring to FIG. 10, a high-level illustration of an
example computing device 1000 that can be used in accordance with
the systems and methodologies disclosed herein is illustrated. For
instance, the computing device 1000 may be used in a system that
supports providing six degrees of freedom with respect to
rotating/translating a three-dimensional object in a
touch-sensitive display apparatus through utilization of three
touch points. In another example, at least a portion of the
computing device 1000 may be used in a system that supports
rotating a three-dimensional object about an axis established by
two touch points in a touch-sensitive display device. The computing
device 1000 includes at least one processor 1002 that executes
instructions that are stored in a memory 1004. The instructions may
be, for instance, instructions for implementing functionality
described as being carried out by one or more components discussed
above or instructions for implementing one or more of the methods
described above. The processor 1002 may access the memory 1004 by
way of a system bus 1006. In addition to storing executable
instructions, the memory 1004 may also store graphical objects to
be rendered on a touch-sensitive display device.
[0065] The computing device 1000 additionally includes a data store
1008 that is accessible by the processor 1002 by way of the system
bus 1006. The data store 1008 may include executable instructions,
three-dimensional graphical objects, etc. The computing device 1000
also includes an input interface 1010 that allows external devices
to communicate with the computing device 1000. For instance, the
input interface 1010 may be used to receive instructions from an
external computer device, receive data pertaining to touch points
on a touch-sensitive display, etc. The computing device 1000 also
includes an output interface 1012 that interfaces the computing
device 1000 with one or more external devices. For example, the
computing device 1000 may display text, images, etc. by way of the
output interface 1012.
[0066] Additionally, while illustrated as a single system, it is to
be understood that the computing device 1000 may be a distributed
system. Thus, for instance, several devices may be in communication
by way of a network connection and may collectively perform tasks
described as being performed by the computing device 1000.
[0067] As used herein, the terms "component" and "system" are
intended to encompass hardware, software, or a combination of
hardware and software. Thus, for example, a system or component may
be a process, a process executing on a processor, or a processor.
Additionally, a component or system may be localized on a single
device or distributed across several devices.
[0068] It is noted that several examples have been provided for
purposes of explanation. These examples are not to be construed as
limiting the hereto-appended claims. Additionally, it may be
recognized that the examples provided herein may be permutated
while still falling under the scope of the claims.
* * * * *