IP Library › Granted Patent US 10,671,237
Granted Patent B2
US 10,671,237 · App. 15/785,345 · Granted Jun 2, 2020

Human-machine interface for presenting a user interface on a virtual curved visual surface

Inventor: Sean Kenneth McBeth (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F3/04815G02B27/017G06F3/011G06F3/013G06F3/017G06F3/0481G06F3/0482G06F3/0485G06F3/04845G06F9/451G06T19/006G02B2027/014G02B2027/0134G02B2027/0187
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,671,237
App. No.
15/785,345
Granted
Jun 2, 2020
Kind
B2
Abstract

Technologies are disclosed for presenting a user interface (“UI”) in a three dimensional virtual environment that involves positioning one or more UI elements at first locations on a curved surface in the virtual environment, where the one or more UI elements are tangential to the curved surface. The curved surface is defined by a first distance to a reference point. The disclosed technologies also involve, for at least one of the UI elements, computing a second location for the UI element on the curved surface and moving the UI element to the second location on the curved surface.

Claims (74)

1. A computer-implemented method for presenting a user interface in a three-dimensional virtual environment, the user interface having a set of user interface (UI) elements, and the three-dimensional virtual environment including a curved visual surface having a first curved axis, a second axis, and a focal point, the method comprising:

for at least one UI element:

determining a first position for the UI element on the first curved axis of the curved visual surface and the second axis of the curved visual surface;

determining a second axis rotation of the UI element with respect to the second axis comprising determining an angle between the focal point of the curved visual surface and a position for a central portion of the UI on the first curved axis of the curved visual surface and the focal point of the curved visual surface and the first position for the UI element on the first curved axis of the curved visual surface;

rotating the UI element on the second axis based on the determined angle; and

rendering the rotated UI element at the first position on the curved visual surface.

2. The computer-implemented method of claim 1 , the method further comprising: detecting user input to the UI requesting movement of at least one UI element; and

for the at least one UI element:

determining a target position for the UI element on the curved visual surface based on the user input,

determining a target rotation for the UI element around the second axis based on the target position,

moving the UI element to the target position on the curved visual surface, and

rotating the UI element to the target rotation.

3. The computer-implemented method of claim 2 , wherein:

moving the UI element to the target position on the curved visual surface further comprises accelerating movement of the UI element to the target position during a first portion of the movement and decelerating movement of the UI element during a second portion of the movement; and

rotating the UI element to the target rotation includes accelerating rotation of the UI element during the first portion of the movement and decelerating rotation of the UI element during the second portion of the movement.

4. The computer-implemented method of claim 2 , wherein the curved visual surface is at least partially spherical such that the second axis is curved;

determining a target rotation for the UI element around the second axis based on the target position;

determining a first axis rotation of the UI element with respect to the first curved axis based on the target position; and

rotating the UI element to the target rotation, wherein the rotating the UI element to the determined first axis rotation.

5. The computer-implemented method of claim 1 , the method further comprising curving the UI element along the first curved axis of the curved visual surface.

6. The computer-implemented method of claim 1 , further comprising:

defining a display area on the curved visual surface for display of the UI elements;

preventing display of the UI elements not positioned within the display area; and

disabling the UI elements not positioned within the display area.

7. The computer-implemented method of claim 1 , wherein the at least one UI element includes a visual component and a collider component.

8. A computer-implemented method for presenting a user interface (UI) in a three-dimensional virtual environment, the method comprising:

positioning one or more UI elements at first locations on a curved surface in the virtual environment;

for at least one of the one or more UI elements:

determining a first location for the UI element on a first curved axis of the curved surface and a second axis of the curved surface;

determining a second axis rotation of the UI element with respect to the second axis comprising determining an angle between a focal point of the curved surface and a position of an intersection of the second axis of the UI element with the first curved axis of the curved surface and the focal point of the curved surface and a position of an intersection of an adjusted second axis of an adjusted UI element with the first curved axis of the curved surface;

rotating the UI element on the second axis based on the determined angle;

rendering the rotated UI element at the first location on the curved surface;

computing a second location for the UI element on the curved surface; and

moving the UI element to the second location on the curved surface.

9. The computer-implemented method of claim 8 , wherein:

computing a second location for the UI element on the curved surface further comprises determining the second location for the UI element on the curved surface based on a user input and computing a target rotation for the UI element based on the second location; and

moving the UI element to the second location on the curved surface further comprises rotating the UI element to the target rotation.

10. The computer-implemented method of claim 9 , wherein:

moving the UI element to the second location on the curved surface further comprises accelerating movement of the UI element to the second location during a first portion of the movement and decelerating movement of the UI element during a second portion of the movement; and

rotating the UI element to the target rotation includes accelerating rotation of the UI element during the first portion of the movement and decelerating rotation of the UI element during the second portion of the movement.

11. The computer-implemented method of claim 9 , wherein the curved visual surface is at least partially spherical and wherein:

computing a target rotation for the UI element based on the second location further comprises:

determining a first axis target rotation of the UI element with respect to the first curved axis of the curved surface based on the second location, and

determining a second axis target rotation of the UI element with respect to a second curved axis of the curved surface based on the second location; and

rotating the UI element to the target rotation further comprises rotating the UI element to the first axis target rotation and rotating the UI element to the second axis target rotation.

12. The computer-implemented method of claim 8 , further comprising curving the UI element along the first curved axis of the curved surface.

13. The computer-implemented method of claim 8 , further comprising:

defining a display area on the curved surface for display of the UI elements;

preventing display of the UI elements not positioned within the display area; and

disabling the UI elements not positioned within the display area.

14. The computer-implemented method of claim 8 , wherein at least one UI element includes a visual component and a collider component.

15. The computer-implemented method of claim 8 , wherein:

the focal point of the curved surface is associated with a viewing point of a user.

16. A system for presenting a user interface (UI) in a three-dimensional virtual environment, the system comprising:

a processor;

a display; and

a memory in communication with the processor, the memory having computer-readable instructions stored thereupon that, when executed by the processor, cause the processor to:

position one or more UI elements at first locations on a curved surface in the virtual environment;

for at least one of the one or more UI elements:

determining a first location for the UI element on a first curved axis of the curved surface and a second axis of the curved surface;

determining a second axis rotation of the UI element with respect to the second axis comprising determining an angle between a focal point of the curved surface and a position for a central portion of the UI on the first curved axis of the curved surface and the focal point of the curved surface and a position at the first location for the UI element on the first curved axis of the curved surface;

rotating the UI element on the second axis based on the determined angle;

rendering the rotated UI element at the first location on the curved surface;

computing a second location for the UI element on the curved surface; and

moving the UI element to the second location on the curved surface.

17. The system of claim 16 , wherein:

computing a second location for the UI element on the curved surface further comprises determining the second location for the UI element on the curved surface based on a user input and computing a target rotation for the UI element based on the second location; and

moving the UI element to the second location on the curved surface further includes rotating the UI element to the target rotation.

18. The system of claim 17 , wherein the curved surface is at least partially spherical and wherein:

computing a target rotation for the UI element based on the second location further comprises:

determining a first axis target rotation of the UI element with respect to the first curved axis of the curved surface based on the second location, and

determining a second axis target rotation of the UI element with respect to a second curved axis of the curved surface based on the second location; and

rotating the UI element to the target rotation further comprises rotating the UI element to the first axis target rotation and rotating the UI element to the second axis target rotation.

19. The system of claim 16 , wherein at least one UI element includes a visual component and a collider component.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2017
From: MCBETH, SEAN KENNETH
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 043876/0375 →
Continuity (1)
Related Publication 20190114051A1 · Apr 18, 2019