×

Constraining motion in 2D and 3D manipulation

  • US 8,325,181 B1
  • Filed: 04/01/2010
  • Issued: 12/04/2012
  • Est. Priority Date: 04/01/2009
  • Status: Active Grant
First Claim
Patent Images

1. A computer-implemented method of manipulating a three-dimensional object displayed in a multi-touch display device, the method comprising:

  • accessing a three-dimensional object-space data set from a computer memory storage device, the three-dimensional object-space data set representing a three-dimensional object in object-space and specifying points on a surface of the three dimensional object in three dimensions in object-space;

    accessing an initial object transformation vector that specifies at least a location and a rotational orientation of the three-dimensional object in world-space;

    determining, using at least one computer processor, a three-dimensional world-space data set by applying the initial object transformation vector to the three-dimensional object-space data set, the three-dimensional world-space data set representing the three dimensional object in world-space and specifying points on the surface of the three dimensional object in three dimensions in world-space;

    accessing, from the computer memory storage device, data representing an image plane in world-space;

    determining a two-dimensional screen-space data set corresponding to a three-dimensional view of the three-dimensional object by projecting the three-dimensional world-space data set onto the image plane based on the data representing the image plane, the two-dimensional screen-space data set specifying points on the surface of the three dimensional object as viewed on the image plane in two dimensions in screen-space;

    rendering, on the multi-touch display device, the three-dimensional view of the three-dimensional object based on the two-dimensional screen-space data set;

    detecting touching by one or more input mechanisms of a first touch point on the multi-touch display device, the first touch point being located at a first initial screen-space location;

    matching the first touch point to a first contact point on the surface of the three-dimensional object, the first contact point being a point on the surface of the three dimensional object in object-space that, when transformed into world-space using the initial object transformation vector and then projected onto the image plane for rendering, is displayed by the multi-touch display device at the first initial screen-space location of the first touch point;

    tracking, 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 screen-space location to a first final screen-space location;

    accessing an object-space constraint point, the object-space constraint point being a point on the surface of the three-dimensional object in object-space;

    determining a world-space constraint point by transforming the object-space constraint point using the initial object transformation vector, the world-space constraint point being located at a first world-space location;

    determining a new object transformation vector that, when applied to the three-dimensional object-space data set, results in a new three-dimensional world-space data set that when projected onto the image plane results in a new two-dimensional screen-space data set corresponding to a new view of the three dimensional object, the new three-dimensional world-space data set satisfying the constraint that the object-space constraint point, when transformed into world space using the new transformation vector, is positioned substantially at the first world-space location and the new two dimensional screen-space data set satisfying the constraint that the first contact point, when transformed into world-space using the new object transformation vector and then projected onto the image plane for rendering, is displayed substantially at the first final screen-space location; and

    rendering, on the multi-touch display device, the new three-dimensional view of the three-dimensional object based on the new two-dimensional screen-space data set, the new three dimensional view being a view of the three-dimensional object wherein each contact point remains displayed by the multi-touch display device substantially underneath its corresponding touch point.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×