A method for partitioning values from one set into two or more new sets according to two or more intersecting line segments in three-dimensions, said method comprising:
- providing a plurality of values defining one set:
- representing said values from said one set as a collection of data or datum, each said datum corresponding to a single value of said values, each said data or datum being machine-readable:
- a second value being a mathematical entity selected from said group of geometric figures consisting of lines, points, curves, and tessellations;
- where said geometric figures can exist in low or high dimensional space;
- a set of intersecting line segments defined as a non-empty set of line segments that contains two or more line segments (li) such that all said line segments (li) in said set of intersecting line segments intersect at a common point (p);
- each of said line segments (li) in said set of intersecting line segments is a geometric line defined over two or more points in three-dimensional space;
- representing a pair of said intersecting line segments as a pair of finite length lines, each of said line segments having a first end and a second end, each of said line segments bounded on either said first end or said second end by a common point, such that said common point for said pair of said intersecting line segments is also known;
- deriving a plane that said pair of said intersecting line segments lie within;
- defining an angle on said plane by said pair of said intersecting line segments and between said intersecting line segments in three-dimension, and then bisecting said plane by a hyperplane, thereby defining a bisecting hyperplane, that is perpendicular to said plane defined by said pair of said intersecting line segments;
- defining a bisector for said angle in said plane as a subset of said bisecting hyperplane:
- whereby said bisector for said angle in said plane is a subset of said bisecting hyperplane;
- where said bisecting hyperplane is a surface of separation between said data or datum that is to be associated with a first of said pair of said intersecting line segments and a second of said pair of said intersecting line segments;
- defining an additional set of two hyperplanes perpendicular to said plane defined over said pair of said intersecting line segments such that a first of two said additional hyperplanes defines a chosen line segment hyperplane and contains as a subset said first of said intersecting line segments and a second of said additional hyperplanes contains as a subset said second of said intersecting line segments:
- defining a perpendicular line that is perpendicular to said plane;
- for every said value to be partitioned according to said pair of said intersecting line segments, said angle between said value and one of said two intersecting line segments, deterministically or arbitrarily chosen, thereby defining a chosen line segment, is computed by either:
- projecting said to be partitioned value onto said plane defined by said pair of intersecting line segments and then computing an angle 1 between said chosen line and a line drawn through said value and said point of intersection of said two intersecting line segments, or,
- projecting said to be partitioned value onto said perpendicular line that is perpendicular to said plane, and then computing an angle 2 between said chosen line segment and a projection line that passes through said to be partitioned value and said value's projection;
- using said additional chosen line segment hyperplanes by projecting said to be partitioned value onto said line that is perpendicular to said plane;
- defining a new hype-plane that contains as a subset said line that passes through said to be partitioned value, said projection, and said perpendicular line:
- computing an angle 3 between said chosen line segment and said line that passes through said to be partitioned value by computing the angle between said new hyperplane and said chosen line segment hyperplane;
- if said angle 3 between said new hyper lane and said chosen line segment hyperplane is less than an angle between said chosen line segment and said bisecting hyperplane that contains said bisector for said angle between said two intersecting line segments then said to be partitioned value is assigned to said chosen line segment from said pair of two intersecting line segments;
- if said angle 3 between said new hyperplane and said chosen line segment hyperplane is greater than said angle 4 between said chosen line segment and said bisecting hyperplane that contains said bisector for said angle between said two intersecting line segments then said to be partitioned value is assigned to said line segment from said pair of two intersecting line segments that not chosen;
- wherein said assignment of said data or datum from said initial or values to said line segment (lj), or a different said line segment (lj), and according to all possible said pairs (li, lj) of intersecting line segments, from said set of 394 intersecting line segments partitions said initial set of values into said two or more new sets of values according to said set of intersecting line segments;
- where a maximum number of new sets or values is determined by, and proportional to, said number of line segments in said set of intersecting line segments;
- displaying said partitioned values to said user, or displaying said hyperplanes.