predicates for line transversals in 3d

21
Predicates for Line Transversals in 3D Linqiao Zhang joint work with Hazel Everett & Sylvain Lazard & Bill Lenhart & Jeremy Redburn School of Computer Science McGill University INRIA Williams College CCCG 2006 Predicates for Line Transversals in 3D – p.1/21

Upload: others

Post on 25-Dec-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Predicates for Line Transversals in 3D

Linqiao Zhangjoint work with

Hazel Everett & Sylvain Lazard & Bill Lenhart & Jeremy Redburn

School of Computer Science McGill University

INRIA Williams College

CCCG 2006 Predicates for Line Transversals in 3D – p.1/21

Predicate

a function returning a value from a discrete set

example:

orientation(p, q, r) ∈

clockwise

counter clockwise

collinear

rp

q

CCCG 2006 Predicates for Line Transversals in 3D – p.2/21

Degree of a Predicate

given: input data x, y, z; function f(x, y, z)

degree of a predicate: maximum degree of f(x, y, z)

example: orientation(p, q, r)

Det

px qx rx

py qy ry

1 1 1

evaluate sign(Det) is degree 2

CCCG 2006 Predicates for Line Transversals in 3D – p.3/21

Why Study the Degree

the degree of a predicate indicates the number of bitsneeded to evaluate the predicate exactly

high degree ⇒

more errors when using finite precision

more time and memory requirements when

using exact representation

CCCG 2006 Predicates for Line Transversals in 3D – p.4/21

Our Predicates

number of transversals to four lines

number of transversals to four segments

number of free transversals to four segments with atriangle obstacle

ordering two intersecting planes defined bytransversals to four lines

needed for 3D visibility computations

CCCG 2006 Predicates for Line Transversals in 3D – p.5/21

Application: 3D visibility

software development of 3D visibility problem

CCCG 2006 Predicates for Line Transversals in 3D – p.6/21

Results of Our Predicates

number of transversals to four lines: degree 26

number of transversals to four segments: degree 42

number of free transversals to four segmentswith a triangle obstacle: degree 90

ordering two intersecting planes defined bytransversals to four lines: degree 168

CCCG 2006 Predicates for Line Transversals in 3D – p.7/21

Background: ComputingTransversals to Four Lines

Plücker coordinates: given an oriented line ` in 3D,express it in Plücker coordinates as:

[x1, x2, x3, x4, x5, x6] = [U,U × P ]

where U is a direction vector of `, P is a point on `

CCCG 2006 Predicates for Line Transversals in 3D – p.8/21

Background: ComputingTransversals to Four Lines

side operator � : given two lines ¯1, ¯

2

sign ( ¯1 � ¯

2 )

indicates the orientation of ¯1 with respect to ¯

2

+ 0 −

CCCG 2006 Predicates for Line Transversals in 3D – p.9/21

Background: ComputingTransversals to Four Lines

denote unknown transversal as:

X = [x1, x2, x3, x4, x5, x6]

computing transversals solving the system

X � X = 0 (1)

a4 a5 a6 a1 a2 a3

b4 b5 b6 b1 b2 b3

c4 c5 c6 c1 c2 c3

d4 d5 d6 d1 d2 d3

XT =

0

0

0

0

(2)

[a1, ... a6], ..., [d1, ... d6] are Plücker coordinates of the input lines

CCCG 2006 Predicates for Line Transversals in 3D – p.10/21

Degree of the Predicate:transversals to four lines

transversal in Plücker coordinates

xi = ai ± bi

√∆ i = 1, ..., 6

degree of ai, bi, ∆ in the input data: 20, 7, 26

recall: four lines in 3D admits 0, 1, 2 or infinite many transversals

number of transversals to four lines : degree 26

CCCG 2006 Predicates for Line Transversals in 3D – p.11/21

Degree of the Predicate:transversals to four segments

given :

a transversal ` to line pq

a segment pq, with endpoints p, q

a 3rd point o chosen from (1, 0, 0), (0, 1, 0), (0, 0, 1),(1, 1, 1), not coplanar with Plane(`, pq)

then ` intersects segment pq iff:

(¯� po) (¯� oq) ≥ 0

l

qp

o

CCCG 2006 Predicates for Line Transversals in 3D – p.12/21

Degree of the Predicate:transversals to four segments

predicate: sign(¯� po)

recall: Plücker coordinates of ¯

xi = ai ± bi

√∆

degree of ai, bi, ∆ in the input data: 20, 7, 26

Plücker coordinates of po: yi

degree of yi in the input data: 1

CCCG 2006 Predicates for Line Transversals in 3D – p.13/21

Degree of the Predicate:transversals to four segments

¯� po = x1 y5 + x2 y6 + x3 y4 + x4 y3 + x5 y1 + x6 y2

= A1 + B1

√∆

degree of A1, B1, ∆ in the input data: 21, 8, 26

degree to evaluate sign(¯� po) : 42 ⇒

number of transversals to four segments: degree 42

CCCG 2006 Predicates for Line Transversals in 3D – p.14/21

free transversals to four segmentswith a triangle obstacle

p

qr

l

q1

t1 t2 t4

p3 p4p2

t3

q3q2 q4

p1

t0

a triangle 4 pqr occludes a transversal ` iff:

` intersects 4 pqr

direction(t0 − ti) , i = 1, ..., 4, are not all the same

free transversals to four segments with a obstacle 4 : 90

CCCG 2006 Predicates for Line Transversals in 3D – p.15/21

Degree of the Predicate:ordering two intersecting planes

given a reference point o, and two planes π1, π2

π1(v1, v2, `1), π2(v1, v2, `2)

p1, p2 are points on `1, `2

ordering plane π1, π2 ⇒

Det [v1, v2, o, p1] · Det [v1, v2, o, p2] · Det [v1, v2, p1, p2]

v1

v2

π2π1

p1p2l2

l1

CCCG 2006 Predicates for Line Transversals in 3D – p.16/21

Degree of the Predicate:ordering two intersecting planes

Det [v1, v2, p1, p2] = A + B√

∆1 + (C + D√

∆1)√

∆2

recall: ai + bi

√∆ : 20, 7, 26

degree of A, B, C, D : 42, 29, 29, 16

sign(A + B√

∆1 + (C + D√

∆1)√

∆2) : 168

ordering two intersecting planes: 168

CCCG 2006 Predicates for Line Transversals in 3D – p.17/21

Degree of the Predicate:ordering two intersecting planes

p1, p2 are points on transversal `1, `2: 168

p1, p2 are both rational points: 3

p1 is a rational point, p2 is a point on a transversal `: 46

CCCG 2006 Predicates for Line Transversals in 3D – p.18/21

Degree 168 Predicate:experiments

data: randomly generate 4 segments; perturb 3 ofthem according to parameter ε

measure:failure percentage of the predicate with interval aritmetic

angle between two intersecting planes due to failure

average computing time of one predicate

machine: i686 with AMD Athlon 1.73 GHz CPU and 1GB main memory

CCCG 2006 Predicates for Line Transversals in 3D – p.19/21

Degree 168 Predicate:experiments

results:

ε 10−10 10−8 10−6 10−4 10−2

P168(%) 50.4032 7.5466 0.7963 0.0785 0.0082

Rad 1.49−08 1.49−08 1.49−08 5.58−08 4.8735−06

T (ms) 10.11 7.11 6.67 6.68 6.67

CCCG 2006 Predicates for Line Transversals in 3D – p.20/21

Conclusion & Future Work

Conclusion:

degree of certain predicates are very high

Future Work:

are there procedures for these predicates with lowerdegree?

CCCG 2006 Predicates for Line Transversals in 3D – p.21/21