Systems and methods for positioning a virtual camera
First Claim
1. A method for positioning and orienting a virtual camera relative to an electronic map, the method comprising:
- determining a set of target objects within the electronic map based on user selections received from a user device, the set comprising at least one target object, each target object having at least one point;
determining a desired orientation of the virtual camera;
generating a point cloud collection containing each point of the set of target objects;
generating a rotation matrix by comparing a current orientation of the virtual camera and the desired orientation of the virtual camera;
generating an oriented point cloud by applying the rotation matrix to each point of the point cloud collection;
generating a three-dimensional bounding shape containing each point of the oriented point cloud;
calculating a desired position and orientation for the virtual camera based on a field of view of the virtual camera and the three-dimensional bounding shape; and
providing the electronic map to the user device for display, the electronic map comprising a view from the virtual camera at the desired position and orientation;
wherein the field of view of the virtual camera comprising a total width along an x-axis and a total height along a y-axis;
the desired position and orientation comprising an x-coordinate value along the x-axis, a y-coordinate value along the y-axis, and a z-coordinate value along a z-axis; and
calculating the desired position and orientation for the virtual camera based on the field of view of the virtual camera and the three-dimensional bounding shape comprises;
determining a gross width and a relative width of the oriented point cloud, the gross width comprising a greatest distance between any two points of the oriented point cloud along the x-axis, the relative width comprising the gross width of the oriented point cloud as a proportion of the total width of the field of view of the virtual camera;
determining a gross height and a relative height of the oriented point cloud, the gross height comprising a greatest distance between any two points of the oriented point cloud along the y-axis, the relative height comprising the gross height of the oriented point cloud as a proportion of the total height of the field of view of the virtual camera;
if the relative width of the oriented point cloud is greater than the relative height of the oriented point cloud, identifying the x-axis as a constraining axis and the y-axis as a non-constraining axis;
if the relative width of the oriented point cloud is not greater than the relative height of the oriented point cloud, identifying the y-axis as the constraining axis and the x-axis as the non-constraining axis; and
determining the z-coordinate value based on the constraining axis.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for positioning and orienting a virtual camera relative to an electronic map are disclosed. The system includes a communication network, a wayfinding server, and one or more user devices. The wayfinding server includes a wayfinding storage unit for storing electronic maps. The wayfinding processor is configured for providing an electronic map to the user devices. Each user device includes a user processor operatively coupled to a user memory and is configured for: receiving the electronic map; determining a set of target objects within the electronic map; determining a desired orientation of the virtual camera; generating a point cloud collection; generating a rotation matrix; generating an oriented point cloud; generating a three-dimensional bounding shape; calculating a desired position and orientation for the virtual camera; and providing the electronic map having a view from the virtual camera at the desired position and orientation for display.
14 Citations
18 Claims
-
1. A method for positioning and orienting a virtual camera relative to an electronic map, the method comprising:
-
determining a set of target objects within the electronic map based on user selections received from a user device, the set comprising at least one target object, each target object having at least one point; determining a desired orientation of the virtual camera; generating a point cloud collection containing each point of the set of target objects; generating a rotation matrix by comparing a current orientation of the virtual camera and the desired orientation of the virtual camera; generating an oriented point cloud by applying the rotation matrix to each point of the point cloud collection; generating a three-dimensional bounding shape containing each point of the oriented point cloud; calculating a desired position and orientation for the virtual camera based on a field of view of the virtual camera and the three-dimensional bounding shape; and providing the electronic map to the user device for display, the electronic map comprising a view from the virtual camera at the desired position and orientation; wherein the field of view of the virtual camera comprising a total width along an x-axis and a total height along a y-axis; the desired position and orientation comprising an x-coordinate value along the x-axis, a y-coordinate value along the y-axis, and a z-coordinate value along a z-axis; and calculating the desired position and orientation for the virtual camera based on the field of view of the virtual camera and the three-dimensional bounding shape comprises; determining a gross width and a relative width of the oriented point cloud, the gross width comprising a greatest distance between any two points of the oriented point cloud along the x-axis, the relative width comprising the gross width of the oriented point cloud as a proportion of the total width of the field of view of the virtual camera; determining a gross height and a relative height of the oriented point cloud, the gross height comprising a greatest distance between any two points of the oriented point cloud along the y-axis, the relative height comprising the gross height of the oriented point cloud as a proportion of the total height of the field of view of the virtual camera; if the relative width of the oriented point cloud is greater than the relative height of the oriented point cloud, identifying the x-axis as a constraining axis and the y-axis as a non-constraining axis; if the relative width of the oriented point cloud is not greater than the relative height of the oriented point cloud, identifying the y-axis as the constraining axis and the x-axis as the non-constraining axis; and determining the z-coordinate value based on the constraining axis. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system for positioning and orienting a virtual camera relative to an electronic map, the system comprising:
-
a communication network; a wayfinding server comprising; a wayfinding storage unit for storing electronic maps; and a wayfinding processor operatively coupled to the wayfinding storage unit and configured for providing an electronic map to one or more user devices via the communication network; and the one or more user devices, wherein each user device comprises a user processor operatively coupled to a user memory and configured for; receiving the electronic map from the wayfinding server via the communication network; determining a set of target objects within the electronic map based on user selections received by the user device, the set comprising at least one target object, each target object having at least one point; determining a desired orientation of the virtual camera; generating a point cloud collection containing each point of the set of target objects; generating a rotation matrix by comparing a current orientation of the virtual camera and the desired orientation of the virtual camera; generating an oriented point cloud by applying the rotation matrix to each point of the point cloud collection; generating a three-dimensional bounding shape containing each point of the oriented point cloud; calculating a desired position and orientation for the virtual camera based on a field of view of the virtual camera and the three-dimensional bounding shape; and providing the electronic map for display, the electronic map comprising a view from the virtual camera at the desired position and orientation; wherein the field of view of the virtual camera comprising a total width along an x-axis and a total height along a y-axis; the desired position and orientation comprising an x-coordinate value along the x-axis, a y-coordinate value along the y-axis, and a z-coordinate value along a z-axis; and calculating the desired position and orientation for the virtual camera based on the field of view of the virtual camera and the three-dimensional bounding shape comprises; determining a gross width and a relative width of the oriented point cloud, the gross width comprising a greatest distance between any two points of the oriented point cloud along the x-axis, the relative width comprising the gross width of the oriented point cloud as a proportion of the total width of the field of view of the virtual camera; determining a gross height and a relative height of the oriented point cloud, the gross height comprising a greatest distance between any two points of the oriented point cloud along the y-axis, the relative height comprising the gross height of the oriented point cloud as a proportion of the total height of the field of view of the virtual camera; if the relative width of the oriented point cloud is greater than the relative height of the oriented point cloud, identifying the x-axis as a constraining axis and the y-axis as a non-constraining axis; if the relative width of the oriented point cloud is not greater than the relative height of the oriented point cloud, identifying the y-axis as the constraining axis and the x-axis as the non-constraining axis; and determining the z-coordinate value based on the constraining axis. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification