Controlling distribution of error in 2D and 3D manipulation
First Claim
1. A computer-implemented method of manipulating a three-dimensional object displayed in a multi-touch display device, the method comprising:
- displaying a three-dimensional object in two dimensions on the multi-touch display device by projecting the three-dimensional object onto an image plane, the three-dimensional object having an initial three-dimensional location and an initial three-dimensional rotational orientation;
detecting touching by one or more input mechanisms of multiple touch points on the multi-touch display device, the multiple touch points including a first touch point, a second touch point and a third touch point on the multi-touch display device;
determining a first initial two-dimensional location of the first touch point on the multi-touch display device;
determining a second initial two-dimensional location of the second touch point on the multi-touch display device;
determining a third initial two-dimensional location of the third touch point on the multi-touch display device;
matching the first touch point to a first three-dimensional contact point on a surface of the three-dimensional object, the first three-dimensional contact point being displayed at the first initial two-dimensional location of the first touch point when the first three-dimensional contact point is projected for display onto the image plane;
matching the second touch point to a second three-dimensional contact point on the surface of the three-dimensional object, the second three-dimensional contact point being displayed at the second initial two-dimensional location of the second touch point when the second three-dimensional contact point is projected for display onto the image plane;
matching the third touch point to a third three-dimensional contact point on the surface of the three-dimensional object, the third three-dimensional contact point being displayed at the third initial two-dimensional location of the third touch point when the third three-dimensional contact point is projected for display onto the image plane;
detecting, based on movement of the one or more input mechanisms while the one or more input mechanisms remain touching the multi-touch display device, movement of the first touch point from the first initial two-dimensional location to a first final two-dimensional location;
using a solver to calculate a three-dimensional transformation of the three-dimensional object that specifies at least one of a new three-dimensional rotational orientation and a new three-dimensional location for the three-dimensional object, the three-dimensional transformation being calculated by the solver using an algorithm that reduces deviation between a projected two-dimensional location of the first three-dimensional contact point and the first final two-dimensional location of the first touch point, a projected two-dimensional location of the second three-dimensional contact point and the second initial two-dimensional location of the second touch point, and a projected two-dimensional location of the third three-dimensional contact point and the third initial two-dimensional location of the third touch point, and the solver, in calculating the three-dimensional transformation, assigns weighting values to the multiple touch points to distribute an aggregate amount of deviation calculated by the solver among the multiple touch points, including among the first touch point, the second touch point and the third touch point such that a magnitude of the deviation between the projected two-dimensional location of the first three-dimensional contact point and the first final two-dimensional location of the first touch point is different than a magnitude of the deviation between the projected two-dimensional location of the second three-dimensional contact point and the second initial two-dimensional location of the second touch point;
transforming, using at least one computer processor, the three-dimensional object using the three-dimensional transformation such that the transformed three-dimensional object is positioned and rotated in accordance with the at least one of the new three-dimensional location and the new three-dimensional rotational orientation; and
displaying the transformed three-dimensional object on the multi-touch display device by projecting the transformed three-dimensional object onto the image plane.
3 Assignments
0 Petitions
Accused Products
Abstract
Each touch point placed on a multi-touch display device is matched with a contact point on a surface of a three-dimensional object displayed on the multi-touch display device. A three-dimensional transformation of the object is calculated by a solver using an algorithm that reduces deviation between projected two-dimensional locations of the three-dimensional contact points after object transformation and two dimensional locations of their matching touch points. The solver, in calculating the three-dimensional transformation, assigns a weighting value to each touch point to distribute an aggregate amount of deviation calculated by the solver among the touch points such that a magnitude of the deviation between the projected two-dimensional location of one of the contact points and that of its matching touch point is different from a magnitude of the deviation between the projected two dimensional location of another contact point and that of its matching touch point.
95 Citations
22 Claims
-
1. A computer-implemented method of manipulating a three-dimensional object displayed in a multi-touch display device, the method comprising:
-
displaying a three-dimensional object in two dimensions on the multi-touch display device by projecting the three-dimensional object onto an image plane, the three-dimensional object having an initial three-dimensional location and an initial three-dimensional rotational orientation; detecting touching by one or more input mechanisms of multiple touch points on the multi-touch display device, the multiple touch points including a first touch point, a second touch point and a third touch point on the multi-touch display device; determining a first initial two-dimensional location of the first touch point on the multi-touch display device; determining a second initial two-dimensional location of the second touch point on the multi-touch display device; determining a third initial two-dimensional location of the third touch point on the multi-touch display device; matching the first touch point to a first three-dimensional contact point on a surface of the three-dimensional object, the first three-dimensional contact point being displayed at the first initial two-dimensional location of the first touch point when the first three-dimensional contact point is projected for display onto the image plane; matching the second touch point to a second three-dimensional contact point on the surface of the three-dimensional object, the second three-dimensional contact point being displayed at the second initial two-dimensional location of the second touch point when the second three-dimensional contact point is projected for display onto the image plane; matching the third touch point to a third three-dimensional contact point on the surface of the three-dimensional object, the third three-dimensional contact point being displayed at the third initial two-dimensional location of the third touch point when the third three-dimensional contact point is projected for display onto the image plane; detecting, based on movement of the one or more input mechanisms while the one or more input mechanisms remain touching the multi-touch display device, movement of the first touch point from the first initial two-dimensional location to a first final two-dimensional location; using a solver to calculate a three-dimensional transformation of the three-dimensional object that specifies at least one of a new three-dimensional rotational orientation and a new three-dimensional location for the three-dimensional object, the three-dimensional transformation being calculated by the solver using an algorithm that reduces deviation between a projected two-dimensional location of the first three-dimensional contact point and the first final two-dimensional location of the first touch point, a projected two-dimensional location of the second three-dimensional contact point and the second initial two-dimensional location of the second touch point, and a projected two-dimensional location of the third three-dimensional contact point and the third initial two-dimensional location of the third touch point, and the solver, in calculating the three-dimensional transformation, assigns weighting values to the multiple touch points to distribute an aggregate amount of deviation calculated by the solver among the multiple touch points, including among the first touch point, the second touch point and the third touch point such that a magnitude of the deviation between the projected two-dimensional location of the first three-dimensional contact point and the first final two-dimensional location of the first touch point is different than a magnitude of the deviation between the projected two-dimensional location of the second three-dimensional contact point and the second initial two-dimensional location of the second touch point; transforming, using at least one computer processor, the three-dimensional object using the three-dimensional transformation such that the transformed three-dimensional object is positioned and rotated in accordance with the at least one of the new three-dimensional location and the new three-dimensional rotational orientation; and displaying the transformed three-dimensional object on the multi-touch display device by projecting the transformed three-dimensional object onto the image plane. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented method of manipulating a three-dimensional object displayed in a multi-touch display device, the method comprising:
-
displaying a three-dimensional object in two dimensions on the multi-touch display device by projecting the three-dimensional object onto an image plane, the three-dimensional object having an initial three-dimensional location and an initial three-dimensional rotational orientation; detecting touching by one or more input mechanisms of multiple touch points on the multi-touch display device, the multiple touch points including a first touch point, a second touch point and a third touch point on the multi-touch display device; determining a first initial two-dimensional location of the first touch point on the multi-touch display device; determining a second initial two-dimensional location of the second touch point on the multi-touch display device; determining a third initial two-dimensional location of the third touch point on the multi-touch display device; matching the first touch point to a first three-dimensional contact point on a surface of the three-dimensional object, the first three-dimensional contact point being displayed at the first initial two-dimensional location of the first touch point when the first three-dimensional contact point is projected for display onto the image plane; matching the second touch point to a second three-dimensional contact point on the surface of the three-dimensional object, the second three-dimensional contact point being displayed at the second initial two-dimensional location of the second touch point when the second three-dimensional contact point is projected for display onto the image plane; matching the third touch point to a third three-dimensional contact point on the surface of the three-dimensional object, the third three-dimensional contact point being displayed at the third initial two-dimensional location of the third touch point when the third three-dimensional contact point is projected for display onto the image plane; detecting, based on movement of the one or more input mechanisms while the one or more input mechanisms remain touching the multi-touch display device, concurrent movement of the first touch point from the first initial two-dimensional location to a first final two-dimensional location and the second touch point from the second initial two-dimensional location to a second final two-dimensional location; using a solver to calculate a three-dimensional transformation of the three-dimensional object that specifies at least one of a new three-dimensional rotational orientation and a new three-dimensional location for the three-dimensional object, the three-dimensional transformation being calculated by the solver using an algorithm that reduces deviation between a projected two-dimensional location of the first three-dimensional contact point and the first final two-dimensional location of the first touch point, a projected two-dimensional location of the second three-dimensional contact point and the second final two-dimensional location of the second touch point, and a projected two-dimensional location of the third three-dimensional contact point and the third initial two-dimensional location of the third touch point, and the solver, in calculating the three-dimensional transformation, assigns weighting values to the multiple touch points to distribute an aggregate amount of deviation calculated by the solver among the multiple touch points, including among the first touch point, the second touch point and the third touch point such that a magnitude of the deviation between the projected two-dimensional location of the first three-dimensional contact point and the first final two-dimensional location of the first touch point is different than a magnitude of the deviation between the projected two-dimensional location of the second three-dimensional contact point and the second final two-dimensional location of the second touch point; transforming, using at least one computer processor, the three-dimensional object using the three-dimensional transformation such that the transformed three-dimensional object is positioned and rotated in accordance with the at least one of the new three-dimensional location and the new three-dimensional rotational orientation; and displaying the transformed three-dimensional object on the multi-touch display device by projecting the transformed three-dimensional object onto the image plane. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification