Gilbert–Johnson–Keerthi Distance Algorithm
   HOME
*



picture info

Gilbert–Johnson–Keerthi Distance Algorithm
The Gilbert–Johnson–Keerthi distance algorithm is a method of determining the minimum distance between two convex sets. Unlike many other distance algorithms, it does not require that the geometry data be stored in any specific format, but instead relies solely on a support function to iteratively generate closer simplex, simplices to the correct answer using the ''configuration space obstacle'' (CSO) of two convex shapes, more commonly known as the Minkowski difference. "Enhanced GJK" algorithms use edge information to speed up the algorithm by following edges when looking for the next simplex. This improves performance substantially for polytopes with large numbers of vertices. GJK makes use of Johnson's distance sub algorithm, which computes in the general case the point of a tetrahedron closest to the origin, but is known to suffer from numerical robustness problems. In 2017 Montanari, Petrinic, and Barbieri proposed a new sub algorithm based on signed volumes which avoid ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specifications for performing calculations and data processing. More advanced algorithms can perform automated deductions (referred to as automated reasoning) and use mathematical and logical tests to divert the code execution through various routes (referred to as automated decision-making). Using human characteristics as descriptors of machines in metaphorical ways was already practiced by Alan Turing with terms such as "memory", "search" and "stimulus". In contrast, a Heuristic (computer science), heuristic is an approach to problem solving that may not be fully specified or may not guarantee correct or optimal results, especially in problem domains where there is no well-defined correct or optimal result. As an effective method, an algorithm ca ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Convex Set
In geometry, a subset of a Euclidean space, or more generally an affine space over the reals, is convex if, given any two points in the subset, the subset contains the whole line segment that joins them. Equivalently, a convex set or a convex region is a subset that intersects every line into a single line segment (possibly empty). For example, a solid cube is a convex set, but anything that is hollow or has an indent, for example, a crescent shape, is not convex. The boundary of a convex set is always a convex curve. The intersection of all the convex sets that contain a given subset of Euclidean space is called the convex hull of . It is the smallest convex set containing . A convex function is a real-valued function defined on an interval with the property that its epigraph (the set of points on or above the graph of the function) is a convex set. Convex minimization is a subfield of optimization that studies the problem of minimizing convex functions over convex se ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Support Function
In mathematics, the support function ''h''''A'' of a non-empty closed convex set ''A'' in \mathbb^n describes the (signed) distances of supporting hyperplanes of ''A'' from the origin. The support function is a convex function on \mathbb^n. Any non-empty closed convex set ''A'' is uniquely determined by ''h''''A''. Furthermore, the support function, as a function of the set ''A'', is compatible with many natural geometric operations, like scaling, translation, rotation and Minkowski addition. Due to these properties, the support function is one of the most central basic concepts in convex geometry. Definition The support function h_A\colon\mathbb^n\to\mathbb of a non-empty closed convex set ''A'' in \mathbb^n is given by : h_A(x)=\sup\, x\in\mathbb^n; see T. Bonnesen, W. Fenchel, '' Theorie der konvexen Körper,'' Julius Springer, Berlin, 1934. English translation: ''Theory of convex bodies,'' BCS Associates, Moscow, ID, 1987. R. J. Gardner, ''Geometric tomography,'' Cam ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Simplex
In geometry, a simplex (plural: simplexes or simplices) is a generalization of the notion of a triangle or tetrahedron to arbitrary dimensions. The simplex is so-named because it represents the simplest possible polytope in any given dimension. For example, * a 0-dimensional simplex is a point, * a 1-dimensional simplex is a line segment, * a 2-dimensional simplex is a triangle, * a 3-dimensional simplex is a tetrahedron, and * a 4-dimensional simplex is a 5-cell. Specifically, a ''k''-simplex is a ''k''-dimensional polytope which is the convex hull of its ''k'' + 1 vertices. More formally, suppose the ''k'' + 1 points u_0, \dots, u_k \in \mathbb^ are affinely independent, which means u_1 - u_0,\dots, u_k-u_0 are linearly independent. Then, the simplex determined by them is the set of points : C = \left\ This representation in terms of weighted vertices is known as the barycentric coordinate system. A regular simplex is a simplex that is also a regular polytope. A ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Minkowski Difference
In geometry, the Minkowski sum (also known as dilation) of two sets of position vectors ''A'' and ''B'' in Euclidean space is formed by adding each vector in ''A'' to each vector in ''B'', i.e., the set : A + B = \. Analogously, the Minkowski difference (or geometric difference) is defined using the complement operation as : A - B = \left(A^c + (-B)\right)^c In general A - B \ne A + (-B). For instance, in a one-dimensional case A = 2, 2/math> and B = 1, 1/math> the Minkowski difference A - B = 1, 1/math>, whereas A + (-B) = A + B = 3, 3 In a two-dimensional case, Minkowski difference is closely related to erosion (morphology) in image processing. The concept is named for Hermann Minkowski. Example For example, if we have two sets ''A'' and ''B'', each consisting of three position vectors (informally, three points), representing the vertices of two triangles in \mathbb^2, with coordinates :A = \ and :B = \ then their Minkowski sum is :A + B = \ which comp ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Collision Detection
Collision detection is the computational problem of detecting the intersection (Euclidean geometry), intersection of two or more objects. Collision detection is a classic issue of computational geometry and has applications in various computing fields, primarily in computer graphics, computer games, computer simulations, robotics and computational physics. Collision detection algorithms can be divided into operating on 2D and 3D objects. Overview In physical simulation, experiments such as playing billiards, are conducted. The physics of bouncing billiard balls are well understood, under the umbrella of rigid body motion and elastic collisions. An initial description of the situation would be given, with a very precise physical description of the billiard table and balls, as well as initial positions of all the balls. Given a force applied to the cue ball (probably resulting from a player hitting the ball with their cue stick), we want to calculate the trajectories, precise ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Physics Engine
A physics engine is computer software that provides an approximate simulation of certain physical systems, such as rigid body dynamics (including collision detection), soft body dynamics, and fluid dynamics, of use in the domains of computer graphics, video games and film ( CGI). Their main uses are in video games (typically as middleware), in which case the simulations are in real-time. The term is sometimes used more generally to describe any software system for simulating physical phenomena, such as high-performance scientific simulation. Description There are generally two classes of physics engines: real-time and high-precision. High-precision physics engines require more processing power to calculate very precise physics and are usually used by scientists and computer animated movies. Real-time physics engines—as used in video games and other forms of interactive computing—use simplified calculations and decreased accuracy to compute in time for the game to respon ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Video Games
Video games, also known as computer games, are electronic games that involves interaction with a user interface or input device such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device to generate visual feedback. This feedback mostly commonly is shown on a video display device, such as a TV set, computer monitor, monitor, touchscreen, or virtual reality headset. Some computer games do not always depend on a graphics display, for example List of text-based computer games, text adventure games and computer chess can be played through teletype printers. Video games are often augmented with audio feedback delivered through loudspeaker, speakers or headphones, and sometimes with other types of feedback, including haptic technology. Video games are defined based on their computing platform, platform, which include arcade video games, console games, and PC game, personal computer (PC) games. More recently, the industry has expanded on ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Tetrahedron
In geometry, a tetrahedron (plural: tetrahedra or tetrahedrons), also known as a triangular pyramid, is a polyhedron composed of four triangular faces, six straight edges, and four vertex corners. The tetrahedron is the simplest of all the ordinary convex polyhedra and the only one that has fewer than 5 faces. The tetrahedron is the three-dimensional case of the more general concept of a Euclidean simplex, and may thus also be called a 3-simplex. The tetrahedron is one kind of pyramid, which is a polyhedron with a flat polygon base and triangular faces connecting the base to a common point. In the case of a tetrahedron the base is a triangle (any of the four faces can be considered the base), so a tetrahedron is also known as a "triangular pyramid". Like all convex polyhedra, a tetrahedron can be folded from a single sheet of paper. It has two such nets. For any tetrahedron there exists a sphere (called the circumsphere) on which all four vertices lie, and another sphere ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Two Types Of Collisions And Corresponding CSO Faces
2 (two) is a number, numeral and digit. It is the natural number following 1 and preceding 3. It is the smallest and only even prime number. Because it forms the basis of a duality, it has religious and spiritual significance in many cultures. Evolution Arabic digit The digit used in the modern Western world to represent the number 2 traces its roots back to the Indic Brahmic script, where "2" was written as two horizontal lines. The modern Chinese and Japanese languages (and Korean Hanja) still use this method. The Gupta script rotated the two lines 45 degrees, making them diagonal. The top line was sometimes also shortened and had its bottom end curve towards the center of the bottom line. In the Nagari script, the top line was written more like a curve connecting to the bottom line. In the Arabic Ghubar writing, the bottom line was completely vertical, and the digit looked like a dotless closing question mark. Restoring the bottom line to its original horizonta ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Minkowski Portal Refinement
The Minkowski Portal Refinement collision detection algorithm is a technique for determining whether two convex shapes overlap. The algorithm was created by Gary Snethen in 2006 and was first published in Game Programming Gems 7. The algorithm was used in Tomb Raider: Underworld and other games created by Crystal Dynamics and its sister studios within Eidos Interactive. MPR, like its cousin GJK, relies on shapes that are defined using support mappings. This allows the algorithm to support a limitless variety of shapes that are problematic for other algorithms. Support mappings require only a single mathematical function to represent a point, line segment, disc, cylinder, cone, ellipsoid, football, bullet, frustum or most any other common convex shape. Once a set of basic primitives have been created, they can easily be combined with one another using operations such as sweep, shrink-wrap and affine transformation In Euclidean geometry, an affine transformation or affinit ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Geometric Algorithms
The following is a list of well-known algorithms along with one-line descriptions for each. Automated planning Combinatorial algorithms General combinatorial algorithms * Brent's algorithm: finds a cycle in function value iterations using only two iterators * Floyd's cycle-finding algorithm: finds a cycle in function value iterations * Gale–Shapley algorithm: solves the stable marriage problem * Pseudorandom number generators (uniformly distributed—see also List of pseudorandom number generators for other PRNGs with varying degrees of convergence and varying statistical quality): ** ACORN generator ** Blum Blum Shub ** Lagged Fibonacci generator ** Linear congruential generator ** Mersenne Twister Graph algorithms * Coloring algorithm: Graph coloring algorithm. * Hopcroft–Karp algorithm: convert a bipartite graph to a maximum cardinality matching * Hungarian algorithm: algorithm for finding a perfect matching * Prüfer coding: conversion between a labeled tree and ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]