曲線に沿った一連の整理されていない点の順序付け


9

カーブ(つまり、ソリッドのエッジ)に属する一連の3Dポイント(ソリッドボディのテッセレーションを実行するライブラリから復元)があります。つまり、カーブはこれらの各ポイントを確実に通過します。

それにもかかわらず、ポイントセットは順序付けされていないため、この曲線を正しく描画できるようにポイントセットを並べ替える必要があります。

これらのタイプの問題に対する既知のアプローチはありますか?

追加情報:

  • 曲線は一般にパラメトリックです(スプライン/ベジェ、円スライスなど)。
  • ポイントは浮動小数点座標として与えられます。
  • ポイントは非常に密に詰め込まれています(ただし、それらは私が望むほど密にできます)。アイデアを与えるために、xで19単位、xで10単位、zで5単位を占める曲線の場合、曲線のセグメントの一連の点を引用します:(20.7622、25.8676、0)(20.6573、25.856、 0)(20.5529、25.8444、0)(20.4489、25.8329、0)(20.3454、25.8213、0)

たとえ次数がわかっていても、点にフィットする無限の数の曲線まであります。追加の制約を追加しても、接線方向は任意である可能性があるため、オープンエンドには問題があります。ここ
joojaa

@joojaaはい、そうです。しかし、ポイントのパッキングは非常に密であるため、正確であるとは思いません。正しい順序になったら、一連のポイントをポリラインとして接続することを計画していました。
andrea.al 2016

ポイントを順序付ける必要のあるコードでは、曲線のパラメトリック形式にさえ気付いていますか?(そうでない場合は、パラメトリックフォームを知る必要があるため、最初の回答を削除します。)
Martin Ender

@MartinBüttnerはい、必要に応じて、曲線のパラメトリック形式にアクセスできます。
andrea.al 2016

1
代表的なポイントセットをご提示ください!
Yves Daoust、2016

回答:


6

組織化されていない点からの曲線再構成と呼ばれる問題のインスタンスがあります。これで何を検索するかがわかったので、クラスト、NNクラストなどのいくつかの方法を見つけます。ここにいくつかのリンクがあります。

曲線を扱い、サンプルが密集しているので、ユークリッド最小全域木を計算することをお勧めします。


4

いくつかの明確化の後、曲線のパラメトリック形式を知ることさえ必要とせず、潜在的に問題のある数値の最小化ステップを回避するはるかに良いアプローチがあるでしょう。

カーブがそれ自体と交差せず、ポイントがカーブ上に十分に密に詰め込まれている場合(つまり、同じセグメントに属していないカーブ上の2つのポイントよりも近くにある必要がある場合など)。それ自体について)、その後、各サンプルの前のポイントと次のポイントを簡単に決定できます:

  • Oログ操作ですです。
  • エンドポイントに対して特別な処理を行う必要があります。彼らの2つの最も近い隣人は次の2つになります両側に1つではなく、曲線に沿った点になります。2つの近傍への距離の比率がしきい値を超えて異なる場合(1.5は、曲線の滑らかさとポイントの密集度に依存します)、これらを発見的に検出することもできます。または、最も近いデータをグラフとして扱うこともできます。この場合、エンドポイントの2つの近傍が互いに向き合っていることがわかります(グラフの他の場所では発生しないはずです)。
  • これで、端点を1つ選択し、最も近い隣接点に沿って(常に到着していないものを選択して)歩いて、曲線に沿って点をトラバースできます。

θ


3

バツYZバツtytzt

バツバツt2+Yyt2+Zzt2

t

ttt

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.