Various embodiments related to the location and adjustment of a virtual object on a display in response to a detected physical object are disclosed. One disclosed embodiment provides a computing device comprising a multi-touch display, a processor and memory comprising instructions executable by the processor to display on the display a virtual object, to detect a change in relative location between the virtual object and a physical object that constrains a viewable area of the display, and to adjust a location of the virtual object on the display in response to detecting the change in relative location between the virtual object and the physical object.
|
1. A computing device, comprising:
a processor;
a multi-touch display; and
memory comprising instructions stored thereon that are executable by the processor to
detect a touch of a first physical object on the display;
detect a touch of a second physical object on the display;
display on the display a virtual object associated with the first physical object in a first position relative to the first physical object;
detect a decrease in a magnitude of a relative distance between the first physical object on the display and the second physical object on the display; and
in response to the decrease in the magnitude of the relative distance between the first physical object and the second physical object, move the virtual object to a second position relative to the first object that increases a distance between the virtual object and the second physical object.
2. The device of
4. The device of
5. The device of
6. The device of
8. The device of
9. The device of
10. The device of
11. The device of
|
The present application is a divisional of U.S. patent application Ser. No. 12/354,166, filed Jan. 15, 2009 and titled VIRTUAL OBJECT ADJUSTMENT VIA PHYSICAL OBJECT DETECTION, the entirety of which is hereby incorporated by reference for all purposes.
Touch-sensitive displays are configured to accept inputs in the form of touches, and in some cases near-touches, of objects on a surface of the display. Touch-sensitive displays may use various mechanisms to detect touches, including but not limited to optical, resistive, and capacitive mechanisms. Further, some touch-sensitive displays may be configured to detect a plurality of temporally overlapping touches. These displays, which may be referred to as multi-touch displays, may allow for a greater range of input touches and gestures than a display configured to accept a single touch at a time.
Oftentimes, an application running on a computing device with a touch-sensitive display may display a virtual object in response to detecting a touch of a physical object on the display. For example, upon detecting a touch of an object on the display, a menu comprising a set of selectable menu options may be displayed for a user. In the case of a multi-touch display, a plurality of physical objects and corresponding virtual objects may be displayed on the display at any time.
Accordingly, various embodiments related to the location and adjustment of a virtual object on a display in response to a detected physical object are disclosed herein. For example, one disclosed embodiment provides a computing device comprising a multi-touch display, a processor and memory comprising instructions executable by the processor to display on the display a virtual object, to detect a change in relative location between the virtual object and a physical object that constrains a viewable area of the display, and to adjust a location of the virtual object on the display in response to detecting the change in relative location between the virtual object and the physical object.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
As described above, multi-touch displays may be configured to detect multiple physical objects located on the surface of such displays. Further, oftentimes upon detecting such a physical object, a corresponding virtual object, such as a user interface menu, may be displayed on the multi-touch display in response. However, where multiple physical objects are located on the display at one time, it is possible that one physical object may obscure a virtual object associated with another physical object. Further, other situations may exist where it is desirable to adjust the location of a virtual object in response to a location of a physical object that constrains a viewable area of the display. Therefore, various embodiments are disclosed herein related to the adjustment of a location of a virtual object displayed on a user interface in response to a physical object. Before discussing these embodiments in detail, an example use environment is described.
The image source 102 includes an optical or light source 108 such as the depicted lamp, an LED array, or other suitable light source. The image source 102 also includes an image-producing element 110 such as the depicted LCD (liquid crystal display), an LCOS (liquid crystal on silicon) display, a DLP (digital light processing) display, or any other suitable image-producing element. The display screen 106 includes a clear, transparent portion 112, such as sheet of glass, and a diffuser screen layer 114 disposed on top of the clear, transparent portion 112. In some embodiments, an additional transparent layer (not shown) may be disposed over the diffuser screen layer 114 to provide a smooth look and feel to the display screen.
Continuing with
To sense objects located on the display screen 106, the interactive display device 100 includes one or more image capture devices 124 configured to capture an image of the entire backside of the display screen 106, and to provide the image to the electronic controller 116 for the detection of objects appearing in the image. The diffuser screen layer 114 helps to avoid the imaging of objects that are not in contact with or positioned within a few millimeters of the display screen 106, and therefore helps to ensure that objects that are touching the display screen 106 are detected by the image capture device 124.
The image capture device 124 may include any suitable image sensing mechanism. Examples of suitable image sensing mechanisms include but are not limited to CCD and CMOS image sensors. Further, the image sensing mechanisms may capture images of the display screen 106 at a sufficient frequency or frame rate to detect motion of an object across the display screen 106. In other embodiments, a scanning laser may be used in combination with a suitable photodetector to acquire images of the display screen 106.
The image capture device 124 may be configured to detect reflected or emitted energy of any suitable wavelength, including but not limited to infrared and visible wavelengths. To assist in detecting objects placed on the display screen 106, the image capture device 124 may further include an additional light source 126 such as one or more light emitting diodes (LEDs) configured to produce infrared or visible light. Light from the light source 126 may be reflected by objects placed on the display screen 106 and then detected by the image capture device 124. The use of infrared LEDs as opposed to visible LEDs may help to avoid washing out the appearance of projected images on the display screen 106.
As described above, upon detecting a physical object on a display surface, an interactive multi-touch display such as interactive display device 100 may be configured to display a set of selectable menu options associated with the physical object.
As described above, where a physical object is located on the surface of a display on which a virtual object is displayed, the virtual object may become obscured by the physical object on the surface, or by edges of the display (which also may be considered physical objects). Therefore, to avoid such problems with the visibility of the virtual object, the position of the virtual object may be adjusted in response to the physical object in cases where the virtual object would otherwise be obscured by the physical object.
In this manner, the virtual object may avoid being obscured by the physical object. This may help to maintain a fully visible layout of virtual objects on the multi-touch display, allowing the user to view multiple virtual objects in their entireties without blockage by physical objects. This may help to avoid manual adjustment of virtual objects, and therefore lead to a more efficient user experience.
Next, at 408, method 400 includes assigning a first virtual charge value associated with the first physical object and/or first virtual object, and a second virtual charge value associated with the second physical object and/or second virtual object. Such an approach allows the multi-touch display to determine an interaction force between the two physical object/virtual object pairs, as described hereafter, to allow the virtual objects to be positioned at locations spaced from nearby physical objects. Any suitable relationship may be used to determine an interaction force between two physical objects. In one example, a calculation that utilizes an inverse square relationship, such as Coulomb's law, may be used to determine the interaction force. An example of Coulomb's law is shown below,
where F represents an interaction force between two objects, namely a first object with an associated charge value q1 and a second object with an associated charge value of q2, where the two objects are separated by a distance r, and k is a constant of proportionality.
In other embodiments, any other suitable mathematical relationship may be used. It will be understood that a virtual charge “associated with” a physical object and/or corresponding virtual object may be located in any suitable position relative to the physical and virtual objects, including but not limited to at a location of the virtual object, directly under the physical object, and/or in any other suitable location.
Further, method 400 at 408 may optionally include, at 420, assigning each virtual charge value a magnitude. In some embodiments, the first virtual charge value and the second virtual charge value may be of equivalent magnitudes. In other embodiments, the first virtual charge value and the second virtual charge value may be of different magnitudes. For example, in one embodiment, the first virtual charge value associated with the first physical object may be three times the magnitude of the second virtual charge value associated with the second physical object. This may be used where it is desired for a virtual object associated with one physical object to more strongly avoid another physical object, or in some situations, to be strongly attracted to another physical object. For example, due to the relatively tight geometric space of a display surface corner, the display surface corner may be assigned a higher virtual charge value of a same sign as a virtual charge value assigned to a physical object located on the display screen. In this manner, a menu or other virtual object associated with a physical object may begin to move away from a corner more strongly at a greater distance from the corner than where the corner and physical object have virtual charge values of the same magnitude.
Further, method 400 at 408 may optionally include, at 422, assigning each virtual charge value a polarity. In some embodiments, the polarity may be assigned by first determining if the first physical object and the second physical object should repel, as shown at 424 of
Continuing with
where F represents an interaction force between two objects, namely a first object with an associated mass value of m1 and a second object with an associated mass value of m2, where the two objects are separated by a distance r, and G is a constant of proportionality.
Next, at 412, method 400 includes displaying a virtual object, such as a first user interface associated with the first physical object, at a location on the display based upon the virtual force vector. For example, as described above, upon detecting a touch of a user's finger on the surface, the multi-touch display may in response display a user interface for the user, such as a contextual menu. Whether the first user interface is moved toward the virtual force vector based on the interaction force acting on the first physical object due to the second virtual charge value or a second virtual force vector based on an interaction force acting on the second physical object due to the first virtual charge value may depend upon the specific design of the user interface, and which direction of movement would result in the user interface moving toward or away from the physical object. For example, in some embodiments the first user interface may be located in a direction of the virtual force vector. In other embodiments the first user interface may be located in a direction opposite of the virtual force vector, or in any other direction based on the virtual force vector.
In some embodiments, each physical object may be assigned a default orientation vector that gives the virtual object associated with the physical object a default orientation that is overcome when other physical objects come into close proximity. In this manner, the position of virtual objects may be stabilized, and may avoid constantly re-adjusting due to constantly changing locational relationships between the physical object and other physical objects. Therefore, in such embodiments, the virtual force vector includes the default orientation vector as a component of the vector sum of all of the interactions with other physical objects. Careful election of the magnitude of the default orientation vector may allow adjustment of the user interface or other virtual object associated with a physical object to begin when another physical object comes within a pre-selected distance of the physical object.
The default orientation vector may have any suitable direction. In some embodiments, the default orientation vector for a physical object may have a direction that biases a virtual object associated with the physical object toward a user, toward an edge of the display, or in any other suitable direction.
In yet other embodiments, the default orientation vector may have a variable magnitude. For example, where the virtual object is a contextual menu, the magnitude of the default orientation vector may decrease with an increasing number of menu items. This is because menus with larger numbers of menu items may have a higher likelihood of being obscured by another physical object than menus containing smaller numbers of menu items. In this manner, contextual menus with larger numbers of menu items may begin to move away from an approaching physical object sooner than contextual menus with smaller numbers of menu items.
Continuing with
Next,
Next, if the first digital camera 700 is moved in a direction toward the second digital camera 706, as depicted in
However, depending upon the mathematical relationship used to determine the virtual force vectors, at some point as the distance between the two physical objects grows smaller, the magnitude of the virtual force vectors may become large enough to overcome the default orientation vectors, thereby resulting in adjustment of the locations of the virtual objects associated with the physical objects.
It will be understood that the description of the interaction between physical objects as “virtual force vectors” and the quantities assigned to the physical objects as “virtual charges” are used for the purpose of convenience, and are not intended to be limiting in any manner, as other metaphors or descriptions may be used to describe a virtually determined repulsive or attractive interaction between physical objects on a touch-sensitive display for the purpose of locating a virtual object on the display. It will also be understood that animation may be used to make the movement of the virtual object more pleasing to a user than sudden, non-animated repositioning of the virtual object.
Further, it will be understood other methods than the calculation of an attractive/repulsive force between physical objects may be used to determine how to adjust a position of a virtual object on a user interface in response to a nearby physical object. For example, a “collision” test may be used, where the virtual object is moved to keep the virtual object just outside of the boundary of the nearby physical object if the virtual object boundary is determined to have intersected the boundary of the physical object due to a change in relative locations of physical objects. Likewise, a “trial and error” approach may be used to move the virtual object out of the boundary of the physical object, such that potential new locations for the virtual object are calculated on a trial-and-error basis until a location that separates the boundaries of the virtual object and the physical object is located.
It will be appreciated that the computing devices described herein may be any suitable computing device configured to execute the programs described herein. For example, the computing devices may be a mainframe computer, personal computer, laptop computer, portable data assistant (PDA), computer-enabled wireless telephone, networked computing device, or other suitable computing device, and may be connected to each other via computer networks, such as the Internet. These computing devices typically include a processor and associated volatile and non-volatile memory, and are configured to execute programs stored in non-volatile memory using portions of volatile memory and the processor. As used herein, the term “program” refers to software or firmware components that may be executed by, or utilized by, one or more computing devices described herein, and is meant to encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc. It will be appreciated that computer-readable media may be provided having program instructions stored thereon, which upon execution by a computing device, cause the computing device to execute the methods described above and cause operation of the systems described above.
It should be understood that the embodiments herein are illustrative and not restrictive, since the scope of the invention is defined by the appended claims rather than by the description preceding them, and all changes that fall within metes and bounds of the claims, or equivalence of such metes and bounds thereof are therefore intended to be embraced by the claims.
Hoover, Paul Armistead, Whytock, Chris, Pessoa, Carlos
Patent | Priority | Assignee | Title |
10901548, | Apr 07 2015 | OmniVision Technologies, Inc | Touch screen rear projection display |
9229629, | Mar 18 2013 | Transcend Information, Inc. | Device identification method, communicative connection method between multiple devices, and interface controlling method |
Patent | Priority | Assignee | Title |
5561445, | Nov 09 1992 | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | Three-dimensional movement specifying apparatus and method and observational position and orientation changing apparatus |
5844547, | Oct 07 1991 | Apple Inc | Apparatus for manipulating an object displayed on a display device by using a touch screen |
6188405, | Sep 14 1998 | Microsoft Technology Licensing, LLC | Methods, apparatus and data structures for providing a user interface, which exploits spatial memory, to objects |
7248248, | Aug 12 2002 | Microsoft Technology Licensing, LLC | Pointing system for pen-based computer |
7278115, | Jun 18 1999 | Microsoft Technology Licensing, LLC | Methods, apparatus and data structures for providing a user interface to objects, the user interface exploiting spatial memory and visually indicating at least one object parameter |
7877707, | Jan 06 2007 | Apple Inc. | Detecting and interpreting real-world and security gestures on touch and hover sensitive devices |
7924271, | Jan 05 2007 | Apple Inc.; Apple Inc | Detecting gestures on multi-event sensitive devices |
20040046799, | |||
20040056894, | |||
20060026535, | |||
20070120846, | |||
20070130529, | |||
20070188518, | |||
20070220444, | |||
20070300182, | |||
20080040692, | |||
20080222545, | |||
20080273755, | |||
20090135162, | |||
20100141589, | |||
20100146387, | |||
20100177931, | |||
20110134047, | |||
20110145706, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 12 2012 | Microsoft Corporation | (assignment on the face of the patent) | / | |||
Oct 14 2014 | Microsoft Corporation | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034544 | /0541 |
Date | Maintenance Fee Events |
May 04 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
May 05 2021 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Nov 19 2016 | 4 years fee payment window open |
May 19 2017 | 6 months grace period start (w surcharge) |
Nov 19 2017 | patent expiry (for year 4) |
Nov 19 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 19 2020 | 8 years fee payment window open |
May 19 2021 | 6 months grace period start (w surcharge) |
Nov 19 2021 | patent expiry (for year 8) |
Nov 19 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 19 2024 | 12 years fee payment window open |
May 19 2025 | 6 months grace period start (w surcharge) |
Nov 19 2025 | patent expiry (for year 12) |
Nov 19 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |