二次曲線またはベジエ曲線の AABB (軸に沿ったバウンディング ボックス) を計算したいと思います。
これを行う方法を私が知っている唯一の方法は、ベジエ曲線上の多数のポイントを評価し、それらのポイントを使用して AABB を計算することです。
より良い方法はありますか?
パラメトリック形式の曲線の導関数のおかげで、最小値と最大値を探すことで可能になるはずです。この記事をご覧ください: http://nishiohirokazu.blogspot.jp/2009/06/how-to-calculate-bezier-curves-bounding.html
二次ベジエ曲線は、x(t) と y(t) の 2 つの座標関数で構成されます。
これらの関数には最大値または最小値 (x'(t) = 0 および y'(t) = 0 の点) があり、これらの点は aabb の境界点です。
したがって、アルゴリズムは次のとおりです。
ところで:
t(x0、x1、x2) = (x0 - x1) / (x2 - 2 * x1 + x0)
t(y0、y1、y2) = (y0 - y1) / (y2 - 2 * y1 + y0)
ここで完全なコードを見つけることができます: https://github.com/keyten/Graphics2D/blob/Delta/Core/Curve.Math.js#L295