How to determine if a vertex on a polyhedron has a local supporting plane?

163 Views Asked by At

A supporting plane of a polyhedron $P$ is a plane that touches $P$ (i.e. at least one point on the surface of $P$ is included in the plane) and the entirety of $P$ lies on one side the plane. A plane $X$ is a local supporting plane of a point $a$ on $P$ if there exists a neighbourhood of $a$, $N(a)$, such that $X$ is a supporting plane of $P \cap N(A)$.

Given a polyhedron $P$, and a vertex $v$ on $P$, how could you determine whether there exists a local supporting plane of $v$? (Only existence is required.)

For a 2D polygon, this is simply finding convex vertices.

1

There are 1 best solutions below

0
On BEST ANSWER

I found an answer in this paper, albeit sans proof, with my own interpretation of some slightly ambiguous language.

Let $ab$ denote a directed edge from vertices $a$ and $b$. Let $l_{ab}$ and $r_{ab}$ denote the outwards facing unit normal of the incident faces on the left and right of $ab$ respectively (when viewed from the side of $a$ towards $b$).

Edge $ab$ is convex iff $l_{ab} \cdot (\hat{ab} \times r_{ab}) < 0$.

Vertex $v$ is convex iff $\exists$ vertices $a$ and $b$ with $n = va \times vb$ s.t.:

  • $va$ and $vb$ are convex
  • Either: (a) boths edges are incident on the same face with outwards normal $\hat{n}$ or (b) $\hat{n} \cdot (l_e \times \hat{e}) < 0$ and $\hat{n} \cdot (\hat{e} \times r_e) < 0$, for both $e = va$ and $e=vb$
  • For every vertex $u$ incident to $v$ (except $a$ and $b$), $(\hat{n} \cdot \hat{vu}) < 0$

A vertex has a local supporting plane if it is convex by this definition.