2017-06-22 12 views

答えて

4

まず、これらの行は、ポイントのconvex hullを形成するポイントを通過する必要があります。凸包は多くの人によって発見される可能性がありますdifferent algorithms。選択はデータによって異なります。

enter image description here

第二に、私たちの平行線の一つは、凸包セグメントを通過します。凸包の他の点で停止するまで、両方の平行線を回転させて、それらの間の距離を減少させることができるからです。

enter image description here

今、私たちは、すべての凸包セグメントを反復処理し、すべてのセグメントに対して、このセグメントを通過するラインを構築し、このラインから最も離れた凸包点を見つける必要があります。これらの距離の最小値(最も遠い点から線まで)が答えになります。このすべての反復は、rotating calipersMBoのおかげで)を使用して線形時間で行うことができます。

+1

「回転キャリパー」 – MBo

+0

@MBo、ありがとう!それが特定の名前を持っていることを知らなかった。 – DAle

+0

ありがとうございました。また、問題が凸包に密接に関連していることをすぐに認識しました。 –

関連する問題