Given:
A spline from concatenated bezier curves.
A point
Desired:
Finding the one bezier curve of the spline, that is closest to that point.
Solution:
Iteratively finding the closest point on each bezier curve and selecting the curve with the overall closest point.
Question:
Is there a simpler way to do this, if the exact point on the curve is not needed?
E.g. an operator to compare two bezier curves distances to the given point, from their controlpoints?
I don't need to know the distance to curve A,B,C ... I "only" need to order the curves by their relative distance. (--> find the closest curve, not the closest point.)
Thanks!
Bspline, distance to segment, simpler than distance to point on curve?
1.2k Views Asked by J-S At
1
There are 1 best solutions below
Related Questions in GEOMETRY
- Generating a sphere in OpenGL without high level libraries - what's wrong with my code?
- Matrix (?) to Rectangle and vise versa
- Turn a button into a loading circle animation
- Find a longitude given a pair of (lat,long) and an offset latitude
- 2D perspective transform in JavaScript
- how to convert Oracle geometry to SQL GEOMETRY
- Overlapping Rectangles Javascript
- Detect hole in geometry
- Reversing RotateAxisAngle back to angles
- WPF: 2 string.format in the same TextBlock?
- Quaternion to EulerXYZ, how to differentiate the negative and positive quaternion
- How to find a point given its distance from two other points?
- Ray/Rectangle intersection in 3D space
- Pairs of points on a graph
- Android OpenCV Detecting Circles takes too much FPS
Related Questions in INTERPOLATION
- Animate custom object variable
- C++: Lagrange Polynomial interpolation to interpolate polynomial defined over a field
- Interpolate HSL Colours
- Integrating Velocity Over a Complex 2-D Surface
- interpolating or fitting spline issues
- x86 assembly fading bmp with linear interpolation
- Limiting interpolation function to NA values
- Loop through categories in a column and perform interpolation on only those records
- AngularJS: Directive with arbitrary start and end symbols
- Using interp1 in an ODE function [MATLAB]
- Given scattered data in three dimensions, need to interpolate data and find functions at a specific point
- Interpolation using dynamic programming
- Pandas interpolate: slinear vs index
- python interpolation and data comparison
- Interpolation for missing values
Related Questions in BSPLINE
- Given scattered data in three dimensions, need to interpolate data and find functions at a specific point
- What is concept of degree at B-spline curve?
- Bspline, distance to segment, simpler than distance to point on curve?
- how can i change the b-spline curves from 4 point to 6?
- B spline Basis Matrix Program
- What's the main difference between B-Rep and Mesh index represation
- How can I convert BezierCurve to B-Spline?
- What difference is between a Coons B-spline and a Bezier Spline?
- Get subject-specific peak velocity and age at peak velocity values from linear mixed spline models
- Interpolation along a BSpline
- Is there a way to create a factor table for spline terms using GAMs in Python's h2o
- Bspline boundary type for parametric curve
- Does increasing the weight of control points have any effect on the continuity of a B-Spline?
- How can i plot an fda object using ggplot2?
- Create BSpline from knots and coefficients
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
You can find the minimum distance and maximum distance between the point and the curve's bounding box. These two distances should be the lower bound and upper bound for the real distance between the point and the curve. So, you have
MinDist(P, Bbox(C1)) <= Dist(P,C1) <= MaxDist(P, Bbox(C1))
MinDist(P, Bbox(C2)) <= Dist(P,C2) <= MaxDist(P, Bbox(C2))
If you can also find that MaxDist(P, Bbox(C1)) < MinDist(P, Bbox(C2)) or MaxDist(P, Bbox(C2)) < MinDist(P, Bbox(C1)), then you can conclude which curve C1 or C2 is closer to point P. However, if you did not have these conditions, then finding out the lower/upper bounds will not help you and you will need to compute the real distance between the point and the curve.