You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In cpCutHole, there is a little nudge given in some rare conditions to prevent an infinite loop when certain normal vectors line up. This is detected with if dist2 < tol2....
This if statement is a vector because dist2 is generally all the points we're processing. This is wrong. IMHO, Matlab should raise an error here but it does not (Octave might, I argued that it should but I cannot recall the outcome).
anyway the right thing to do is to find if there are any points that are not converging and perturb only those points...
Thanks for your advice! I agree that when I print out dist2, it's a long vector.
In the 2-d case, I know for sure that one point needs to be fixed because it should have a similar value with the opposite point by symmetry on the ellipse. However, on the ellipsoid surface, I did not notice an unusual point so far... It seems they are all converging. Do you have any advice on finding the points that are not converging? Thanks!
The cp function for the ellipse has some optimization in it so probably all values are perturbed slightly, which is probably enough to avoid the symmetry.
Maybe similar things can happen with non-convex shapes... some condition on the angles I guess, goes into fixed point thm (somehow!)
Thanks for your comment! Yes, some non-convex shapes, especially the triangulated surfaces like bunny and pig. I thought about the issue before. Maybe calculating the "slope" (gradient in 3-D?) between the projection points can measure the angles? In 2-D it's just the slope I guess.
In cpCutHole, there is a little nudge given in some rare conditions to prevent an infinite loop when certain normal vectors line up. This is detected with
if dist2 < tol2...
.This
if
statement is a vector because dist2 is generally all the points we're processing. This is wrong. IMHO, Matlab should raise an error here but it does not (Octave might, I argued that it should but I cannot recall the outcome).anyway the right thing to do is to find if there are any points that are not converging and perturb only those points...
CC @KellyHu
The text was updated successfully, but these errors were encountered: