Let there be $ k$ planes $ X_i\subseteq\mathbf{R}^3$ , all tangent to the unit sphere, in general position, represented by normal vectors $ v_i$ . Then $ \mathbf{R}^3\setminus\cup_i X_i$ consists of bounded and unbounded segments, let $ S$ denote the closure of the union of all bounded segments and assume that $ \mathbf{0}\in S$ . This should give a star shape w.r.t. $ \mathbf{0}$ , i.e. for all $ s\in S$ , the ‘interval’ $ [\mathbf{0},s]$ lies within $ S$ . Given a unit vector $ w\in R^n$ , in general position to the others, I can compute all scalars $ \lambda_i$ such that $ \lambda_iw$ lies on $ X_i$ . What is the most efficient method to verify which (necessarily unique) positive $ \lambda_i$ lies on the boundary of $ S$ , if I want to apply it to a lot of $ w$ s but the planes stay fixed?

The easiest way I currently see is to compute all intersection points of three planes each, then for every plane $ X_i$ , arrange a list of all triangles on that plane, that means, the three intersection points of $ X_i$ with two out of three other planes. Now, given $ w$ , I first get the largest $ \lambda_i$ , check whether it lies in some of the triangles on $ X_i$ , if not, continue with the second largest $ \lambda_i$ , etc.