Opened 2 years ago

Last modified 2 years ago

#25122 needs_review enhancement

Construct RationalPolyhedralFan from possibly overlapping cones

Reported by: yzh Owned by:
Priority: major Milestone: sage-8.2
Component: geometry Keywords: RationalPolyhedralFan, cone arrangement, IMA-PolyGeom
Cc: novoselt, vbraun, moritz, jipilab, mkoeppe Merged in:
Authors: Yuan Zhou Reviewers:
Report Upstream: N/A Work issues:
Branch: u/yzh/construct_rationalpolyhedralfan_from_possibly_overlapping_cones (Commits) Commit: 4371ee7f1702396985c648a059902bd4c5e45b48
Dependencies: Stopgaps:

Description (last modified by yzh)

Given a cone arrangement where the cones are not necessarily face-to-face, construct a rational polyhedral fan that is a subdivision of the cone arrangement. This could be useful for topological computations with non-convex unions of polyhedral sets.

In the following example, the intersection of the cones c1 and c2 is not a face of each. Thus, they do not belong to the same rational polyhedral fan. By using the allow_arrangement=True option in the Fan constructor, we construct a fan so that c1 and c2 are unions of cones in the fan. There is no guarantee that it will be "the" coarsest subdivision, though.

sage: c1 = Cone([(-2,-1,1), (-2,1,1), (2,1,1), (2,-1,1)])
sage: c2 = Cone([(-1,-2,1), (-1,2,1), (1,2,1), (1,-2,1)])
sage: Fan([c1,c2])
Traceback (most recent call last):
...
ValueError: these cones cannot belong to the same fan!
...
sage: fan = Fan([c1, c2], allow_arrangement=True)
sage: fan.ngenerating_cones()
5
sage: fan.plot()
Graphics3d Object

Change History (8)

comment:1 Changed 2 years ago by novoselt

What the result should be? The coarsest subdivision? And in what situations is it necessary?

comment:2 Changed 2 years ago by yzh

  • Cc novoselt vbraun moritz jipilab mkoeppe added
  • Description modified (diff)
  • Keywords RationalPolyhedralFan cone arrangement IMA-PolyGeom added

comment:3 Changed 2 years ago by yzh

  • Branch set to u/yzh/construct_rationalpolyhedralfan_from_possibly_overlapping_cones

comment:4 Changed 2 years ago by yzh

  • Commit set to 984ba246406648168236b7a9173a1ce5cb81291c
  • Status changed from new to needs_review

New commits:

984ba24implement allow_arrangement option in Fan constructor

comment:5 Changed 2 years ago by moritz

Please put your name as an author, yzh

comment:6 Changed 2 years ago by yzh

  • Authors set to Yuan Zhou

comment:7 Changed 2 years ago by mkoeppe

allow_arrangement is misspelled once in the documentation

comment:8 Changed 2 years ago by git

  • Commit changed from 984ba246406648168236b7a9173a1ce5cb81291c to 4371ee7f1702396985c648a059902bd4c5e45b48

Branch pushed to git repo; I updated commit sha1. New commits:

4371ee7fix a typo in documentation
Note: See TracTickets for help on using tickets.