[Math] Center of Arc with Two Points, Radius, and Normal in 3D

3danalytic geometryeuclidean-geometrygeometrylinear algebra

I'm struggling to get the math to work out on this. I need to derive an alorithm for a program where I'm representing geometric entities. In this case, it's an arc. I would like to create the arc in 3D space using two points, the radius, and a normal. Any help would be greatly appreciated.

Edit:

To clarify….

  • The two points, radius, and normal are given.
  • It is a circular arc
  • The two points are the end points of the arc.
  • The radius is the radius of the circle defining the arc. Thus as would be expected, the segments from the two end points of the arc to the center would have a length equal to the radius.
  • The normal is the normal unit vector to the plane of the circle defining the arc, thus yes perpendicular to the plane of the arc.

I'm just trying to derive an algorithm to find the center point of the circle defining the arc with the aforementioned given in 3D space. Any help would be greatly appreciated.

Best Answer

The plane of the arc is found from one of the points with $d=\hat{n} \cdot \vec{p}_1$ such that any point $\vec{r}=(x,y,z)$ belongs to the plane if $$ \hat{n} \cdot \vec{r} = d$$ where $\hat{n}$ is the unit normal vector.

The midpoint of the two points is $$\vec{p}_m = \frac{\vec{p}_1 + \vec{p}_2}{2} $$

Next we need two unit vectors on the plane to define planar coordinates. Use $$\hat{u} = {\rm unitvector}(\vec{p}_2-\vec{p}_1) $$ $$ \hat{v} = \hat{n} \times \hat{u} $$

We need the center of the arc point on the plane, and we can find it by moving from the mid point $\vec{p}_m$ along the direction $\vec{v}$ by $$h = \frac{ \ell^2}{2 r}$$ where $\ell = \| \vec{p}_2 - \vec{p}_1 \|$.

The figure below shows the arc and the height calculation from the chord length $\ell$ and radius $r$.

pic

So the center is at $$\vec{p}_c = \vec{p}_m + (h-r) \hat{v}$$

The included angle of the arc is $$\theta = 2 \sin^{-1} \left( \frac{\ell}{2 r} \right) $$

Finally the arc is parametrically defined as $$\vec{r}(t) = \vec{p}_c + {\rm Rot}(\hat{n}, -\frac{\theta}{2} + t \theta) \hat{v} r $$