IP Library Granted Patent US 7,173,633
Granted Patent B2
US 7,173,633 · App. 10/788,482 · Granted Feb 6, 2007

Method and system for inversion of detail-in-context presentations

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 7,173,633
App. No.
10/788,482
Granted
Feb 6, 2007
Kind
B2
Abstract

In a data processing system that executes a program of instructions, a method of inverting a distorted surface in a detail-in-context presentation is provided comprising the steps of locating a first approximation point in an undistorted surface for the inversion of a point in a distorted surface, determining if the approximation point is acceptable as an inversion of the point in the distorted surface, locating a next approximation point in the undistorted surface if the first approximation point is not acceptable, and repeating this process until an acceptable approximation point is located for the inversion of the point in the distorted surface. The use of this method to obtain the distance between points on an undistorted surface from the relative distances between corresponding points on a plurality of distorted surfaces in a detail-in-context presentation is provided. A data processing system for the inversion of detail-in-context presentations is provided including an input device, a central processing unit, memory, and a display wherein said data processing system has stored therein data representing sequences of instructions which when executed cause the method described to be performed.

Claims (69)

1. In a data processing system that executes a program of instructions, a method for inverting a point X on a distorted surface in a detail-in-context presentation for display on a display screen, comprising the steps of:

(a) locating a first approximation point P i , for an inversion of the point X, wherein the point P i is on an undistorted surface; and,

(b) obtaining a point P i D by displacing the point P i , onto the distorted surface by applying a distortion function D; calculating a magnitude of the difference|P i D −X| between the point X and the point P i D ; determining whether the point P i is acceptable for the inversion of the point X by comparing the magnitude of the difference to a tolerance δ; and, displaying the point P i on the display screen if the point P i is acceptable for the inversion of the point X.

2. The method of claim 1 and further comprising the steps of:

(c) locating a next approximation point P i+1 for the inversion of the point X if the approximation point P i is not acceptable for the inversion of the point X; and,

(d) repeating steps (b) and (c) until the approximation point is acceptable for the inversion of the point X.

3. The method of claim 2 and further comprising the step of selecting the tolerance δ.

4. The method of claim 3 wherein the tolerance δ is a fraction of a width of a pixel for a computer display surface.

5. The method of claim 4 wherein the fraction includes one-half.

6. The method of claim 1 wherein the undistorted surface is included in the detail-in-context presentation.

7. The method of claim 2 and further comprising the step of constructing a line RVP-X from a point RVP above the undistorted surface, through the point X, and through the undistorted surface to locate the first approximation point P i at a point of intersection of the line RVP-X and the undistorted surface.

8. The method of claim 7 wherein the point RVP is a reference viewpoint for the detail-in-context presentation.

9. The method of claim 8 and further comprising the steps of:

projecting the point P i D onto the line RVP-X to locate a point P i P , wherein the point P i P , is a closest point to the point P i D on the line RVP-X; and,

projecting the point P i P onto the undistorted surface in a direction opposite to that of a displacement due to distortion to locate the next approximation point P i+1 for the inversion of the point X, wherein the displacement due to distortion is given by a line F o - F constructed through the undistorted surface and a focus F of the distorted surface, and wherein the point P i+1 is located on the undistorted surface at a point of intersection of the undistorted surface and a line constructed parallel to the line F o - F and passing through the point P i P .

10. The method of claim 2 and further comprising the step of bisecting the point P i to counter divergence in successive approximations of the point P i due to folds or discontinuities in the distorted surface.

11. The method of claim 1 wherein the undistorted surface is a plane.

12. The method of claim 1 wherein the distorted surface is defined by the distortion function D.

13. The method of claim 12 wherein the distortion function D is an n-dimensional function, wherein n is an integer greater than zero.

14. The method of claim 13 wherein the distortion function D is a three-dimensional function.

15. The method of claim 12 wherein the distortion function D is a lens function.

16. A system for inverting a point X on a distorted surface in a detail-in-context presentation, the system having memory, a display, and an input device, the system comprising:

a processor coupled to the memory, display, and input device and adapted for:

(a) locating a first approximation point P i for an inversion of the point X, wherein the point P i is on an undistorted surface; and,

(b) obtaining a point P i D by displacing the point P i onto the distorted surface by applying a distortion function D; calculating a magnitude of the difference |P i D −X| between the point X and the point P i D ; determining whether the point P i is acceptable for the inversion of the point X by comparing the magnitude of the difference to a tolerance δ; and, displaying the point P i on the display if the point P i , is acceptable for the inversion of the point X.

17. The system of claim 16 wherein said processor is further adapted for:

(c) locating a next approximation point P i+1 for the inversion of the point X if the approximation point P i is not acceptable for the inversion of the point X; and,

(d) repeating (b) and (c) until the approximation point is acceptable for the inversion of the point X.

18. A computer program product having a computer readable medium tangibly embodying computer executable code for directing a data processing system to invert a point X on a distorted surface in a detail-in-context presentation for display on a display screen , the computer program product comprising:

code for (a) locating a first approximation point P i for an inversion of the point X, wherein the point P i is on an undistorted surface; and,

code for (b) obtaining a point P i D by displacing the point P i onto the distorted surface by applying a distortion function D; calculating a magnitude of the difference |P i D −X| between the point X and the point P i D ; determining whether the point P i , is acceptable for the inversion of the point X by comparing the magnitude of the difference to a tolerance δ; and, displaying the point P i on the display screen if the point P i is acceptable for the inversion of the point X.

19. The computer program product of claim 18 and further comprising:

code for (c) locating a next approximation point P i+1 for the inversion of the point X if the approximation point P i is not acceptable for the inversion of the point X; and,

code for (d) repeating (b) and (c) until the approximation point is acceptable for the inversion of the point X.

20. In a data processing system that executes a program of instructions, a method for determining a distance on an undistorted surface between a first point X 1 and a second point X 2 on a distorted surface in a detail-in-context presentation for display on a display screen, comprising:

inverting the point X 1 by:

locating a first approximation point P i1 for an inversion of the point X 1 , wherein the point P i1 is on the undistorted surface; and,

obtaining a point P i1 D by displacing the point P i1 onto the distorted surface by applying a distortion function D; calculating a magnitude of the difference |P i1 D−X 1 | between the point X 1 and the point P i1 D ; and, determining whether the point P i1 is acceptable for the inversion of the point X 1 by comparing the magnitude of the difference |P i1 D −X 1 | to a tolerance δ;

inverting the point X 2 by:

locating a first approximation point P i2 for an inversion of the point X 2 , wherein the point P i2 is on the undistorted surface; and,

obtaining a point P i2 D by displacing the point P i2 onto the distorted surface by applying a distortion function D; calculating a magnitude of the difference |P i2 D −X 2 | between the point X 2 and the point P i2 D ; and, determining whether the point P i2 is acceptable for the inversion of the point X 2 by comparing the magnitude of the difference |P i2 D −X 2 | to the tolerance δ;

calculating a magnitude of the difference |P i1 −P i2 | between the approximation points P i1 and P i2 ; and,

displaying the maanitude of the difference |P i1 −P i2 | on the display screen.

21. The method of claim 20 wherein the first point X 1 is on a first disported surface defined by a first distortion function D 1 and the second point X 2 is on a second distorted surface defined by a second distortion function D 2 .

22. In a data processing system that executes a program of instructions, a method for inverting a point X on a distorted surface in a detail-in-context presentation for display on a display screen, comprising the steps of:

(a) locating a first approximation point P i for an inversion of the point X, wherein the point P i is on an undistorted surface;

(b) obtaining a point P i D by displacing the point P i onto the distorted surface by applying a distortion function D; calculating a magnitude of the difference |P i D −X| between the point X and the point P i D ; and, detennining whether the point P i is acceptable for the inversion of the point X by comparing the magnitude of the difference to a tolerance δ;

(c) locating a next approximation point P i+1 for the inversion of the point X if the approximation point P i , is not acceptable for the inversion of the point X by: constructing a line RVP-X from a point RVP above the undistorted surface, through the point X, and through the undistorted surface to locate the first approximation point P i at a point of intersection of the line RVP-X and the undistorted surface, wherein the point RVP is a reference viewpoint for the detail-in-context presentation; projecting the point P i D onto the line RVP-X to locate a point P i P , wherein the point P i P is a closest point to the point P i D on the line RVP-X; and, projecting the point P i P onto the undistorted surface in a direction opposite to that of a displacement due to distortion to locate the next approximation point P i+1 for the inversion of the point X, wherein the displacement due to distortion is given by a line F o - F constructed through the undistorted surface and a focus F of the distorted surface, and wherein the point P i+1 is located on the undistorted surface at a point of intersection of the undistorted surface and a line constructed parallel to the line F o - F and passing through the point P i P ;

(d) repeating steps (b) and (c) until the approximation point is acceptable for the inversion of the point X; and,

(e) displaying the approximation point on the display screen.

23. A computer program product having a computer readable medium tangibly embodying computer executable code for directing a data processing system to invert a point X on a distorted surface in a detail-in-context presentation for display on a display screen , the computer program product comprising:

code for (a) locating a first approximation point P i for an inversion of the point X, wherein the point P i is on an undistorted surface;

code for (b) obtaining a point P i D by displacing the point P i onto the distorted surface by applying a distortion function D; calculating a magnitude of the difference |P i D −X| between the point X and the point P i D ; and, determining whether the point P i is acceptable for the inversion of the point X by comparing the magnitude of the difference to a tolerance δ;

code for (c) locating a next approximation point P i+1 for the inversion of the point X if the approximation point P i is not acceptable for the inversion of the point X;

code for (d) repeating (b) and (c) until the approximation point is acceptable for the inversion of the point X; and,

code for (e) displaying the approximation point on the display screen.

24. In a data processing system that executes a program of instructions, a method for inverting a point X on a distorted surface in a detail-in-context presentation for display on a display screen, comprising the steps of:

(a) locating a first approximation point P i for an inversion of the point X, wherein the point P i is on an undistorted surface;

(b) obtaining a point P i D by displacing the point P i onto the distorted surface by applying a distortion function D; calculating a magnitude of the difference |P i D −X| between the point X and the point P i D ; and, determining whether the point P 1 is acceptable for the inversion of the point X by comparing the magnitude of the difference to a tolerance δ;

(c) locating a next approximation point P i+1 for the inversion of the point X if the approximation point P i is not acceptable for the inversion of the point X; and,

(d) repeating steps (b) and (c) until the approximation point is acceptable for the inversion of the point X; and,

(e) displaying the approximation point on the display screen.

25. A system for inverting a point X on a distorted surface in a detail-in-context context presentation, the system having memory, a display, and an input device, the system comprising:

a processor coupled to the memory, display, and input device and adapted for:

(a) locating a first approximation point P i for an inversion of the point X, wherein the point P i is on an undistorted surface;

(b) obtaining a point P i D by displacing the point P i onto the distorted surface by applying a distortion function D; calculating a magnitude of the difference |P i D −X| between the point X and the point P i D ; and, determining whether the point P i is acceptable for the inversion of the point X by comparing the magnitude of the difference to a tolerance δ;

(c) locating a next approximation point P i+1 for the inversion of the point X if the approximation point P i is not acceptable for the inversion of the point X; and,

(d) repeating (b) and (c) until the approximation point is acceptable for the inversion of the point X; and,

(e) displaying the approximation point on the display.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2023
From: INTELLECTUAL VENTURES ASSETS 186 LLC
To: MIND FUSION, LLC
Reel/Frame 064271/0001 →
SECURITY INTEREST Recorded Mar 24, 2023
From: MIND FUSION, LLC
To: INTELLECTUAL VENTURES ASSETS 191 LLC; INTELLECTUAL VENTURES ASSETS 186 LLC
Reel/Frame 063295/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2023
From: CALLAHAN CELLULAR L.L.C.
To: INTELLECTUAL VENTURES ASSETS 186 LLC
Reel/Frame 062708/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2009
From: IDELIX SOFTWARE INC.
To: NOREGIN ASSETS N.V., L.L.C.
Reel/Frame 022127/0727 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2008
From: TIGGES, MARK H A
To: IDELIX SOFTWARE INC.
Reel/Frame 021398/0682 →