2
3次多項式の方程式とその2つのポリゴン上にある2つの点があります。これらの点の間のポリゴンの長さもopencv arcLength関数で計算できます。OpenCVで多項式を等しく分割する
ポリゴンを同じ長さのN個の部分に分割する等配点を得るにはどうすればよいですか?
3次多項式の方程式とその2つのポリゴン上にある2つの点があります。これらの点の間のポリゴンの長さもopencv arcLength関数で計算できます。OpenCVで多項式を等しく分割する
ポリゴンを同じ長さのN個の部分に分割する等配点を得るにはどうすればよいですか?
これが助けることができるかどうか見てみましょう。以下では:すべての1 <= j <= N - 1
については
f = polynomial
f' = derivative of f
N = Number of subdivisions
D = length of each subdivisions
a = x coordinate of f for the first end of the curve.
M = max of f' in the interval [a, b] where the curve is to be drawn.
k = an integer such that an error of M/k would be negligible
アルゴリズム
を、n(j)
は、このようなsum(j)
以下未満M/k
でjD
に近づくことを見つける:
sum(j) = sum from i=1 to n(j) of sqrt(1 + f'(a + (i-1)/k)^2)/k
アイデア
量:
1/k * sqrt(1 + f'(a + (i-1)/k)^2)
はa + (i-1)/k
とa + i/k
の間の曲線のおおよその長さです。
アルゴリズムのアイデアは、D
に十分に近接したものを見つけようとしてこれらの小さな曲線セグメントの長さを合計2D
、3D
することなど