1

Say I have an arc from $P_0$ to $P_3$, that has unit tangents $t_0$ and $t_3$, respectively. Let $L$ denote the distance between $A$ and $B$.

If $P_0 = (0, 1)$, $P_3 = (1, 0)$, $t_0 = (1, 0)$ and $t_3 = (0, 1)$, then the other two points of the cubic Bézier approximating the arc are $P_1 = (k, 1)$ and $P_2 = (1, k)$ where $k = \frac 4 3 (\sqrt 2 - 1)$. More generally, if the angle between $t_0$ and $t_3$ is 90°, then $P_1 = P_0 + k_n L t_0$ where $k_n = \frac{4 - 2 \sqrt 2}{3}$ (and similar for $P_2$).

What is a general form approximation for an arbitrary convex arc, expressed in terms of $P_0$, $P_3$, $t_0$ and $t_3$? More specifically, what is $k$, generally, expressed in terms of the angle $\theta$ between $t_0$ and $t_3$?

For what it's worth:

$\theta$ $k_n$
180° $k_n \approx 0.6575$¹
90° $k_n = \frac {4 - 2 \sqrt 2}{3} \approx 0.39$
$k_n = \frac 1 3$

(¹ This was eye-balled in Inkscape and may not be as accurate as implied by the number of digits.)


This answer is relevant, but only gives a partial solution, in that a) I don't have the arc length, and b) I need to be able to calculate a value for the $\theta = 0$ case wherein the arc radius is infinite. Thus, I am still looking for an answer expressed in terms of the distance between $P_0$ and $P_3$, and particularly, one that gives a finite answer over $0° \le \theta \le 180°$.

Matthew
  • 167
  • Please refer this article: https://math.stackexchange.com/questions/1671588/b%c3%a9zier-curve-approximation-of-a-circular-arc/1672700#1672700 – fang Jun 10 '23 at 20:49
  • @fang, wow, search fail. I checked other questions with 'Bézier' and 'arc' and didn't spot that one. That said, that's an incomplete answer for my purposes; I'll edit the question to explain. (I may be able to work out the answer I need myself, given that information; if so, I'll self-answer.) – Matthew Jun 11 '23 at 01:53
  • @fang, also, thank you! – Matthew Jun 11 '23 at 02:00

1 Answers1

1

Before we can answer, we need to know the radius of the arc being approximated. From this answer, we have: $r = \frac{L}{2 sin(\frac \theta 2)}$

From this answer, we have $k_n L = \frac{4 r}{3}tan(\frac{\theta}{4})$, or $k_n = \frac{4}{3 L}{\frac{L}{2 sin(\frac \theta 2)}} tan(\frac{\theta}{4}) = \frac{2 tan(\frac{\theta}{4})}{3 sin(\frac \theta 2)}$. Simplifying, we can obtain $k_n = \frac{1}{3 cos^2(\frac \theta 4)}$, which (unlike the prior form) is defined at $\theta = 0$ and produces the expected values (with $k_n = \frac 2 3$ at $\theta = 180°$).

Matthew
  • 167