2016-05-11 1 views
2

3次多項式の方程式とその2つのポリゴン上にある2つの点があります。これらの点の間のポリゴンの長さもopencv arcLength関数で計算できます。OpenCVで多項式を等しく分割する

ポリゴンを同じ長さのN個の部分に分割する等配点を得るにはどうすればよいですか?

Problem visualization

答えて

1

これが助けることができるかどうか見てみましょう。以下では:すべての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/kjDに近づくことを見つける:

    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)/ka + i/kの間の曲線のおおよその長さです。

アルゴリズムのアイデアは、Dに十分に近接したものを見つけようとしてこれらの小さな曲線セグメントの長さを合計2D3Dすることなど