![]() Note that this yields possible separating axes, not separating lines/planes. Each face's normal or other feature direction is used as a separating axis. The separating axis theorem can be applied for fast collision detection between polygon meshes. Regardless of dimensionality, the separating axis is always a line.įor example, in 3D, the space is separated by planes, but the separating axis is perpendicular to the separating plane. SAT suggests an algorithm for testing whether two convex solids intersect or not. Two convex objects do not overlap if there exists a line (called axis) onto which the two objects' projections do not overlap. The separating axis theorem (SAT) says that: Technically a separating axis is never unique because it can be translated in the second version of the theorem, a separating axis can be unique up to translation. ![]() In the second version, it may or may not be unique. In the first version of the theorem, evidently the separating hyperplane is never unique. ![]() For example, A can be a closed square and B can be an open square that touches A. (Although, by an instance of the second theorem, there is a hyperplane that separates their interiors.) Another type of counterexample has A compact and B open. In the context of support-vector machines, the optimally separating hyperplane or maximum-margin hyperplane is a hyperplane which separates two convex hulls of points and is equidistant from the two. The Hahn–Banach separation theorem generalizes the result to topological vector spaces.Ī related result is the supporting hyperplane theorem. The hyperplane separation theorem is due to Hermann Minkowski. An axis which is orthogonal to a separating hyperplane is a separating axis, because the orthogonal projections of the convex bodies onto the axis are disjoint. In another version, if both disjoint convex sets are open, then there is a hyperplane in between them, but not necessarily any gap. In one version of the theorem, if both these sets are closed and at least one of them is compact, then there is a hyperplane in between them and even two parallel hyperplanes in between them separated by a gap. There are several rather similar versions. And so we get a runtime of O(log n).In geometry, the hyperplane separation theorem is a theorem about disjoint convex sets in n-dimensional Euclidean space. Each recursion divides the number of vertices by 2 (technically divides them by at least 4/3). For each level, this requires two line intersections, a left-right check, and determining where a point is on a line. This case is handled similarly to Case 2.2 but using the appropriate neighbor of v(n/2). We know that on that side there can be no intersection with the polygon.Ĭase 2.3: The intersection is closer to v(n/2) If (x0, x1) is diverging away from (v0, v1) on one side of its intersection with (v0, v(n/2)). The basic idea in this case is that all points in the polygon are to one side of the line (v0, v1). ![]() Specifically, if x0 is to the left of (v0,v(n/2)) then all the vertices in the right "half". In this case the line we are interested in is either to the left or the right of the line splitting the polygon, and so we can recurse into that half of the polygon. These can both be handled in constant time.ĭetermine if the line (v0,v(n/2)) intersects the line (x0,x1). The base cases are when the polygon has 2 or 3 vertices. We will follow the same basic idea of lhf to get an O(log n) algorithm. Second, determining if a point is to the left or the right of a line can be done in constant time. Note two things: First, finding the intersection of two lines (and determining its existence) can be done in constant time. Here is a version that should fix the problem with his.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |