問題タブ [flood-fill]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
186 参照

javascript - JavaScript のビットマスクで湖を識別する

シンプレックス ノイズを使用して「大陸」を生成するアルゴリズムがあるため、高さマップが生成され、ピクセル/タイルが特定のレベルを超えると陸地として認識され、それ以外の場合は水域として認識されます。

私が抱えている問題は、土地が海面下のセクションを取り囲む場合があることです。海ではなく、陸か湖なので、それらの領域を特定できるようにしたいと思います。

したがって、次の 0 は水を表し、1 は土地を表します。

真ん中の 3 つの 0 は非海として識別されます。

フラッド フィル アルゴリズムに精通しています。だから私ができる1つの方法は、ランダムなポイントを繰り返し、水が見つかったら洪水の塗りつぶしを使用し、それが特定のサイズを超えている場合は海になることです. 次に、海が認識されたら、海以外の水域を調べて識別できます。

ロードされたものよりも広い領域で作業する必要があるため、これは効率が悪いように思えます。

より良い方法はありますか?

0 投票する
2 に答える
4009 参照

java - 再帰的な塗りつぶし - 境界のチェック

マトリックス内の有効な隣接要素を再帰的に塗りつぶします (有効な隣接要素は同じ色の隣接要素です)。フラッドは配列内のすべての有効な隣接要素を埋めていません。テストに使用しているボードは次のとおりです。

出力は次のとおりです。

編集 マップを次のように変更する場合:

出力は次のようになります。

左の 2 つの 4 の数字も入力する必要があります。私の再帰関数は次のとおりです。

コードの変更

出力は次のとおりです。

0 投票する
1 に答える
2717 参照

parallel-processing - 並列フラッド フィルの実装はありますか?

私は自由に使える openMP と MPI を持っており、フラッド フィル アルゴリズムの並列バージョン (できれば c) に遭遇した人がいるかどうか疑問に思っていました。そうでない場合は、それを並列化する方法のスケッチに興味があります-再帰に基づいていることを考えると、それは可能ですか?

フラッド フィルに関する記憶をリフレッシュする必要がある場合は、ウィキペディアにかなり良い記事があります。

助けてくれて本当にありがとうございます。

0 投票する
2 に答える
5143 参照

java - FloodFill - マインスイーパ、説明が必要

Java でマインスイーパのようなゲームを作成しようとしていますが、ほとんどの作業は完了しています。私が助けを必要としているのは FloodFill です - http://en.wikipedia.org/wiki/Flood_fill

誰かがそれがどのように機能するか説明できますか? ネットで調べたのですが、説明がよくわからないのでこちらで聞いたほうがわかりやすいと思いました。

私のマインスイーパには次のものがあります。

グリッドは 10x10 グリッドなので、クリックしたボタンが btn[14] だったとします。

質問に戻りますが、誰か説明してもらえませんか?

編集: コードを 2D に変更したので、上記の代わりに今は

ボタンがクリックされたときに、値を持つ mines[][] という変数をチェックして、値が 0 (最初にクリックされた前後) の場合は BG を変更します。

0 投票する
2 に答える
1632 参照

java - 再帰的 Floodfill オーバーフロー

これは、私が作成している掃海艇のようなゲームに使用している floodFill コードです。ただし、ご覧のとおり、2 つの部分がコメント アウトされています。コメントを外してプログラムを実行するとすぐに。

なぜこれが起こっているのかわからず、修正方法もわかりません。どんな助けでも大歓迎です。

編集:

他の誰かがこの問題に遭遇した場合に備えて、Fls'Zen がチャットで思いついた答え

0 投票する
1 に答える
3059 参照

c# - フラッド フィルの StackOverflow

現在、練習用の小さなペイント プログラムを作成しています。今、私はペイント バケツ ツール、つまりフラッド フィルを実行しようとしています。おもしろいことに、埋めなければならないピクセルの数が少ない場合は、すべて正常に機能します。塗りつぶしピクセルのヘイト数が多い場合、SO-Exception が発生します。これが私のコードです:

「löschFarbe」はクリックされた色です(別の色で消去/上書きされます)

エラーの発生: 全体像または大きなスペースを埋めたい場合、ここでエラーが発生します。

これを解決する方法を知っている人はいますか?

ところで、これは私のプログラムの写真です: ペイント

0 投票する
4 に答える
8530 参照

matlab - matlab を使用したフラッド フィル

私は MATLAB の初心者です。このアルゴリズムを使用して matlab でフラッド フィリングを実装しようとしています。再帰関数を正しく使用していない可能性がありますが、何が間違っているのかわかりません。このコードにより、matlab が閉じます。次のコードを使用しています朝からデバッグしようとしていますが、問題を見つけることができませんでした

を使用してこの関数を呼び出す

im は 200 x 200 のマトリックス イメージです。黒 (0) を灰色 (127) にしたいのですが、助けていただければ幸いです。

0 投票する
3 に答える
2729 参照

c++ - C++ で経路探索アルゴリズム (Tower Defense) を適用する

配列 [15*15] とパスを取り、パスを埋めるときに実行したステップのキューを生成するフラッド フィル アルゴリズムを実装しました。tl;dr それはこのように見えます

しかし、グリッドを埋めるために必要なステップのキューができましたが、オブジェクトが最初から最後までたどり、取得するためにこの情報を適用する方法がわかりません。つまり、1 つのパスで単純ですが、次のように分割された場合 (9 は出口):
0 0 1 0 0
0 1 1 1 0
0 1 0 1 0
0 1 1 1 0
0 0 9 0 0
両方があります。キュー内の左右のパスなので、単純な go(f_path.front()) を実行すると、神が何を知っているかがわかります。どうすればそれをフィルタリングして、終了してから停止するだけですか? 頭を包むことはできません。

0 投票する
2 に答える
2729 参照

ios - UIImage でフラッドフィルを実行する

不透明度を持つ UIImage でフラッドフィルを実行しようとしています。CG(http://en.wikipedia.org/wiki/Flood_fill)で 4-Way フラッドフィルを実装しようとしましたが、ピクセルの色を読み取ってピクセルに色を付けるのが遅すぎます。300x100 ピクセルの領域を埋めるには 1 分以上かかります。次のような関数が必要です。

それは十分に速いです。

UIImagesで動作するObjective-Cのフラッドフィルアルゴリズムの実用的な実装を持っているか、アイデアを持っている人はいますか? いくつかの iOS 描画アプリで、このようなペイント バケツ ツールを見たことがあります。

0 投票する
2 に答える
3728 参照

c# - フラッドフィルの実装

これは、スタックベースのフラッドフィルアルゴリズム(ウィキペディアの定義に基づいています)のC#実装です。以前はコーディング中に、それが機能することだけを見たかったのです。そして、それはしました。次に、実際に塗りつぶされたピクセル数を知りたいと思いました。そのため、私のコードでは、戻り値の型をintに変更し、「ctr」変数を返しました。しかし、ctrは、実際に塗りつぶされたピクセル数の約2倍であることが判明しました(これらのピクセルをカウントすることを唯一の目的として、別の関数を作成しました。念のために)。

変数「ctr」が本来あるべき2倍にインクリメントされる方法と理由について、誰かが啓蒙できますか?

*ピクセルクラスは、ビットマップのピクセルのx、y、およびカラー値のコンテナとしてのみ機能します。