塗りつぶしHOMEプログラム[プログラム]塗りつぶしプログラム塗りつぶしプログラムを作ろうとおもいたち、その際いろいろ調べたり、考えたりしたので書いていきます。ペイントとかで簡単に塗りつぶしを使えるのに、実際作ったり高速化考えたりするとむずかし面白いですね。今回は、わかりやすくエクセルで『1』を『2』に塗りつぶす感じで作っていきます。ペイントで言う塗りつぶしに設定してマウスで『1』のところを一箇所クリックした想定で考えていきます。基本は同じだけど、最前線のみ実行させるプログラム原始プログラムはい、まずは最適化とか基本何も考えていないプログラムです。IfLoop仕組みとしては、画面の端っこからひたすらループを行い『2』を探します。見つけたらそのセルから前後左右に『1』があるか確認します。有った場合は『2』に変えてフラグをTrueにする全部見たあとにフラグがTrueだったらまた画面左上から調べ直し....を繰り返します。全部見たあとにフラグがFalseだったら塗りつぶし終了です。ものっそい時間がかかりそうですね。時間を計測してみます。時間計測参考リンク今回、この4箇所からスタートして、塗りつぶしが完了するまでの時間を計測していきます。測定は1箇所あたり10回行いその平均を求めます。実行中はパソコンに触れないようにしました。以下が結果となります。5.349s今回系の大きさが、120x60です。うーんめちゃくちゃ遅いですね。今回の速度を基準に最適化を考えていきます。基本は同じだけど、最前線のみ実行させるプログラム上のプログラムだと既に実行して上下左右が『2』である箇所も、再度確認しながら処理をすすめているので非常に遅いです。最前線部分のみ上下左右の確認処理を行うようにしていきます。考え方としては、『3』である箇所を探し、上下左右を確認し『1』の箇所に『3』を入れる。最後に中心に『2』を入れる。オンにするとこんな感じで動作します。5.001sおお!早くなりました。2018.11.15今回はパワーポイントとエクセルの図形の違いについて書いていきます。2019.01.09どうもこんにちは、えんちゃです。最近友人に、リストを作っていて重複した値に色を塗りたいけどどうしたらいいか。NOTIFYを使うと非常に便利です。送るプログラムを作ってみたいと思います。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。ランキング[UNITY]オブジェクトを結合する。UNITY[VBA]アニメーションを作るVBA[UNITY]マリオの土管を作る。WordPress.。