5

プリズムに押し出したい線分と円の弧で構成されるポリライン輪郭があります。

押し出し関数は直線エッジ ポリゴンのみをサポートするため、線分を使用して円弧を近似する必要があります。

円弧は、開始点、中心点、およびスイープ角度 (CCW) によって定義されます。

表示する必要がある掃引角度は、半径が 0.3 mm から 300 mm の範囲で、<10° から 179.9° の範囲です。

私は現在、計算するアーク頂点の数を計算し、これらを基本的な方法でポリゴンに追加します。指定されたアークの長さの mm ごとに頂点を配置するだけです。これは機能しますが、半径が大きくスイープ角度が小さい円弧では非常に効率が悪いようです。

あらゆる種類の円弧に対して適切な近似を生成するアルゴリズムが必要です。もしあれば、グーグルで絞り込むためのキーワードを知りたいです。

4

1 に答える 1

4

円弧のスイープ角度が a、半径が r の場合、同じ端点を持つ弦と円弧の間の最大距離は r*(1-cos(a/2) です。n 個の等間隔の点を配置​​してこの円弧を分割すると、その場合、円弧とセグメント化された線の間の最大距離は r*(1-cos(a/(2*(n+1)))) になります。

たとえば、最大距離を E より下に保ちたい場合は、n+1 >= a/(2*acos(1 - E/r)) となるように n を選択して、弧に沿って n 個の新しい点を配置できます。

于 2010-09-08T14:04:56.473 に答える