predicates for line transversals in 3d
Post on 25-Dec-2021
5 Views
Preview:
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
top related