Unexpected intersection between parallel polygons.

asked 2020-08-07 22:00:13 +0200

noahyt gravatar image

updated 2023-01-09 23:59:53 +0200

tmonteil gravatar image

The intersection function returns a non-empty intersection for two polygons that are separated in space.

The following is a reproducible example:

# Define parallel polygons.
a = Polyhedron([[0, -1, 1], [1, -1, 1], [1, 1, -1]])
b = Polyhedron([[0.0, -0.5, 1.5], [1.0, -0.5, 1.5], [1.0, 1.5, -0.5]])

# Intersection.
c = a.intersection(b)

# c -> 
# `A 2-dimensional polyhedron in RDF^3 defined as the convex hull of 3
# vertices (use the .plot() method to plot)`

a.plot(fill='green') + b.plot(fill='red') + c.plot(fill='orange')
edit retag flag offensive close merge delete

Comments

Same here (Sage 9.2.beta7). c has the same vertices as b :

sage: bool(set(c.vertices())==set(b.vertices()))
True

Curiouser and curiouser :

sage: a.intersection(b).vertices()
(A vertex at (1.0, 1.5, -0.5),
 A vertex at (1.0, -0.5, 1.5),
 A vertex at (0.0, -0.5, 1.5))
sage: b.intersection(a).vertices()
(A vertex at (1.0, 2.0, -1.0),
 A vertex at (0.0, 0.0, 1.0),
 A vertex at (1.0, 0.0, 1.0))

I'm tempted to say it's a bug, but I knows silch about polyhedra...

Emmanuel Charpentier gravatar imageEmmanuel Charpentier ( 2020-08-09 01:09:05 +0200 )edit
1

Note: also asked, and answered, on the sage-devel mailing list:

Now tracked at

slelievre gravatar imageslelievre ( 2020-08-09 14:34:54 +0200 )edit