Transforming a curve on an arc to a line

264 Views Asked by At

I have a function, actually a point cloud, (similar to a sine wave) on an arc with a known radius of curvature. I need to remove the curvature to regenerate the original function (or point cloud).

I've taken a look at this solution 'my plane is not vertical, How to update 3D coordinate of point cloud to lie on a 3D vertical plane' but can't seem to extend it for a problem where instead of updating over a line it is updating over an arc.

I've attached a hand drawn image to try and convey the problem statement, keep in mind I'm not an artist.

My point cloud is in 3D; however, it is cylindrical so the z component doesn't feature a radius of curvature.

Curvature transformation

1

There are 1 best solutions below

0
On BEST ANSWER

Something like $$\tag1(x,y)\mapsto (R\cdot\arctan\tfrac{x-x_0}{y-y_0}, \sqrt{(x-x_0)^2+(y-y_0)^2}-R)$$ looks promising. Actually, if you are writing a program for this, most languages have a function atan2(x-x0,y-y0) that takes casre of the sign/quadrant problem I left out in $(1)$.