Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikolalysenko/polytope-closest-point
Computes the closest point on a convex polytope to a given point.
https://github.com/mikolalysenko/polytope-closest-point
Last synced: about 2 months ago
JSON representation
Computes the closest point on a convex polytope to a given point.
- Host: GitHub
- URL: https://github.com/mikolalysenko/polytope-closest-point
- Owner: mikolalysenko
- License: bsl-1.0
- Created: 2013-02-15T18:35:58.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2014-11-14T23:21:06.000Z (about 10 years ago)
- Last Synced: 2024-10-20T14:28:19.529Z (2 months ago)
- Language: JavaScript
- Size: 156 KB
- Stars: 9
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
polytope-closest-point
======================
Computes the closest point in a convex polytope to a given point.Install
=======
Using npm, type the following command into your shell:npm install polytope-closest-point
Usage
=====
Here is an example of how to find the closest point to a triangle in a mesh:var mesh = require("bunny");
var result = new Array(3);
var sqr_distance = require("polytope-closest-point")(
mesh.cells[0],
mesh.positions,
[0,0,0],
result);Which computes the closest point in the first facet of the mesh to the point `[0,0,0]`, storing the resulting point in `result` and the squared distance in `sqr_distance`.
For more examples, see test/simple.js.
### `require("polytope-closest-point")(cell, positions, x[, result])`
Computes the closest point in a polytope to `x`, storing the result in `result`.
* `cell` is a list of indices into a positions representing the vertices of the polytope.
* `positions` is an array of tuples representing the vertices of the polytope
* `x` is the point we are querying against
* `result` (optional) is the array to store the closest point in.Returns a float representing the squared Euclidean distance from x to the polytope. If no such point can be found, it returns Number.NaN
Notes: For polytopes with fewer than 4 vertices, the code uses hand optimized routines derived from WildMagick. For higher dimensions, it falls back to a general purpose quadratic programming solver that is ported from somewhat slower R/FORTRAN codes. If you are planning on using this code to do distance queries on meshed surfaces, it is recommend you triangulate all your polygons first.
Credits
=======
Triangle/tetrahedra closest point code derived from WildMagick (c) David Eberly 1998-2012.Other dimensions, (c) 2013 Mikola Lysenko
BOOST License.