1
$\begingroup$

Reverse Arcs in 3d

Given 3D points P1(200,60,140), P2(300,120,110), P3(3,0,-1), P4(-100,0,-1) and the radius of arc C1MP3 is equal to radius of arc C2MP1. How do I calculate coordinates x, y, z of points C1 and C2?

Points C1 and C2 are centers of two reverse arcs which are tangent to each other at point M which lies on ray Q1Q2. Arc C1MP3 is tangent to ray P3P4 and arc C2MP1 is tangent to ray P1P2.

$\endgroup$
5
  • $\begingroup$ What are points $Q1$ and $Q2$? $\endgroup$ – Ragnar Dec 31 '13 at 9:29
  • $\begingroup$ Points Q1 and Q2 emerge as a result of moving points P1 and P3 in the direction obvious from picture. It is easy to calculate centers of arcs with different radius. But how to calculate centers of arcs with equal radius. How to find the position of points Q1 and Q2? $\endgroup$ – Brad Dec 31 '13 at 10:16
  • $\begingroup$ in 2D, they can't have equal radii, but I'm not sure about 3D. $\endgroup$ – Ragnar Dec 31 '13 at 10:18
  • $\begingroup$ What's the difference between a reverse arc and a regular arc? Is this just added to describe the opposing concavity of the pair of arcs? $\endgroup$ – rschwieb Dec 31 '13 at 11:06
  • $\begingroup$ Yes, it is to clarify the description. $\endgroup$ – Brad Dec 31 '13 at 11:53
1
$\begingroup$

Summarized, the steps are:

  1. Introduce variables for the radius R, how far Q1 lies beyond P1, and how far Q2 lies beyond P3.
  2. Calculate normalized vectors for P1-Q1 and for Q2-Q1.
  3. Their average vector points to C2. Use that to calculate the point C2 where C2-P1 is perpendicular to P2-P1.
  4. Calculate the point M1 where M should be.
  5. Repeat the calculation with P3 and P4 to find C1 and M2.
  6. Let an algorithmic solver (eg. Downhill simplex algorithm) do the work to find the minimum for:

    ||M2-M1||2+(||P1-C2||-R)2+(||P3-C1||-R)2

Formula

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.