カウンターを使用してダグラス・ピーッカーライン単純化アルゴリズムを実行して、実行を一時停止して個々の処理ステップを表示することは可能ですか? 可能かどうかわかりません。もしそうなら、特定のデータ構造 がこれを行うことが推奨されます。私は再帰的な解法しか見ていませんが、これが実現可能かどうかは分かりません。カウンターを使用したダグラス・ピーッカーアルゴリズム
0
A
答えて
1
はい、これは可能です。ほとんどの場合、アルゴリズムが完了した後のステップを表示することに興味がある場合は、アルゴリズムの各ステップでポイントリストのコピーを保持するのが最も簡単です。アルゴリズムが完了したら、中間ステップのリストを印刷することができます。あなたは、リスト内のポイントを格納している場合
は、たとえば、あなたが各繰り返しでリストをコピーできます。これは、配列の浅いコピーであることを
class DouglasPeucker {
private List<Point[]> steps = new ArrayList<>();
public Point[] compute(Point[] points) {
steps.add(points.clone());
// perform normal recursive steps
}
public void printSteps() {
for (Point[] points: steps) {
...
}
}
}
注 - ポイント、つまりオブジェクトではありませんクローン化された。ポイントオブジェクトが不変(おそらくそうであるはずです)の場合、これはうまく動作します。
また、各ポイントで停止して変数の状態を調べる場合は、適切な場所にブレークポイントを持つ対話式デバッガを使用する必要があります。
関連する問題
- 1. CMDeviceMotionを使用したシット・アップ・カウンター
- 2. スコアリング用のカウンターを使用
- 3. VBAのカウンターを使用
- 4. KeyPressイベントを使用しているカウンター
- 5. ラジオボタンを使用したカウンターの選択肢のクイズ
- 6. はImportError:私はカウンターを(使用して試してみました名前のカウンター
- 7. ダグラス・スミスの「HDL Chip Design」のエラーを修正しましたか?
- 8. python 2.7、open( 'file.txt')のカウンターを使用
- 9. SklearnClassifierをカウンターで使用する方法
- 10. NiFiカウンターの使用方法は?
- 11. カウンターの敵を殺しました
- 12. CSSカウンターを使用してカウンターリセット付きサブセクションを作成する
- 13. JS 2つのカウンターを増やし、2番目のカウンターを2番目のカウンターとの関係として使用します。
- 14. カウンター
- 15. 位置カウンターがオーバーフローしました
- 16. Shopify - インクリメントまたはカウンター
- 17. badgeTextのカウンターをクリックして
- 18. カウンター内にカウンターが必要です
- 19. CSSカウンター
- 20. はカウンター
- 21. JavaScriptを使用しているカウンター、HTMLとCSSが動作しない
- 22. カウンター++ /カウンター - 期待通りに動作しない
- 23. 反復外のカウンターを使用し、リスト内の空白行を無視する
- 24. 丸い矩形ボタンをカウンター付きのバッジとして使用する
- 25. mvcのif条件で使用するカウンター
- 26. std :: recursive_mutexで使用される所有者カウンターにアクセス
- 27. ダグラス・クロックフォードの「Javascriptを:良い部品」の章5.5
- 28. Loacationカウンターとコードセグメント
- 29. Excelヘルプ - カウンター
- 30. カウンター質問
ありがとう、スプリンター。これを知っていることは良いことです。ある時点では、コードの適切な場所にコピーを取っていることを確認する必要があると思われる出力のコピーを保持しようとしていました。返されたポイントがマージされる前に、実装に2つの再帰呼び出しがあります。私は自分の問題は、再帰呼び出し後のポイントデータのコピーを取ろうとしていたこと、つまり結果として得られたラインデータがマージされた後であると思う。再帰呼び出しの前にコピーが行く方法です – daveb