はじめに ソートアルゴリズムの学習として、12種のソートアルゴリズムを実装して可視化してみました。 Unityにはあまり関係がなさそうな話題ですが、Unity上で作ったのでUnityタグをつけます。 バブルソート バブルソートのアルゴリズムは以下のような感じです。 配列の要素を最初から最後まで見ていき、順序が逆の要素があれば入れ替える 全ての要素の順序が正しくなるまで 1.を繰り返す. void BubbleSort(int[] a) { bool isEnd = false; int finAdjust = 1; // 最終添え字の調整値 while (!isEnd) { bool loopSwap = false; for (int i = 0; i < a.Length - finAdjust; i++) { if (a[i] < a[i + 1]) { Swap(ref a[i],
この投稿では、以前に TinyKeepDev が こちら で述べたランダムなダンジョンを生成する技法について説明しようと思います。元の投稿に比べて、もう少し具体的に話を進めるつもりです。まずは、以下に示したアルゴリズムの一般的な動作をご覧ください。 部屋の生成 はじめに、幅と高さを持つ部屋を円の中にランダムに配置しましょう。TKdevのアルゴリズムは、各部屋のサイズを生成するのに正規分布を用いています。これは一般的にとてもいいアイデアです。なぜかと言うと、これによってより多くのパラメータを扱うことができるようになるからです。幅/高さの平均と標準偏差間の異なる比率を選ぶと、通常は見た目の違うダンジョンとなります。 ここで実行すべき関数は getRandomPointInCircle です。 function getRandomPointInCircle(radius) local t = 2
トップページ > アルゴリズム 未分類 交換 ソート 再帰処理 描画処理 衝突判定 戦略・ゲーム木 迷路 塗りつぶし 探索 データ構造 木構造 経路探索 文字列探索 暗号・ハッシュ インタプリ...
『エースコンバット アサルト・ホライゾン』驚異の街並みを実現した技術とは?――Autodesk 3December 2011リポート CG制作者が集うイベントで『ACAH』開発秘話が明らかに 2011年12月8日、東京・ラフォーレミュージアム六本木にて、CG制作者向けのコミュニケーションイベント“Autodesk 3December 2011”が開催された。 “3December”とは、1999年にヨーロッパで初開催されて以降、例年12月に定期開催されている、3DCGユーザーの交流を目的としたイベントだ。“Autodesk 3December 2011”を主催するオートデスクは、さまざまな業種向けに3Dデザインソフトウェアやエンターテインメントクリエーションソフトウェアを提供している会社。その代表的な製品である“Maya”は、いまやゲーム制作には欠かせないソフトウェアとなっており、ゲームフ
Home > ユーザー事例 > ゲーム > ACE COMBAT ASSAULT HORIZON バンダイナムコゲームス Interview「より本物らしく、より効率的に――リアルかつ高密度な"実在都市"再現手法」 ACE COMBAT ASSAULT HORIZON バンダイナムコゲームス Interview「より本物らしく、より効率的に――リアルかつ高密度な"実在都市"再現手法」 2011年10月に発売された「エースコンバット アサルト・ホライゾン」は、シリーズ累計1,100万本を超える人気フライトシューティングゲーム「エースコンバット」シリーズの新作である。今回はPS3とXbox 360の2大ゲームマシンでの発売となり、従来のフライトシューティングゲームを超えた"超音速・大破壊シューティング"へと飛躍。高層ビル群を超音速で駆け抜け、至近距離で敵を木っ端みじんに破壊する爽快なドッグファ
さまざまな3Dソフトにおけるビル群・都市自動生成関連メモ。LightWaveとBlender以外は触ったことのない人間がざっと調べただけなので、抜けや間違いがあれば教えて下さい。 LightWave Blender Scene City Blended Cities City Script Generating a virtual city Blender Building Generator その他 実際の都市・地形 Metasequoia EasyTown ビル街作成(オレCityGen2) / 住宅Gen / 都会Gen Shade ビル群自動作成スクリプト CINEMA 4D City Kit Maya QTown Ninja City 名称不明 Kludge City Auto Building Maker City Builder Digital City Maya Struc
ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 元々は、自分の頭の中を整理することを目的にこのコーナーを開設してみたのですが、最近は継続させることを目的に新しいネタを探すようになってきました。まだまだ面白いテーマがいろいろと残っているので、気力の続く限りは更新していきたいと思います。 今までに紹介したテーマに関しても、新しい内容や変更したい箇所などがたくさんあるため、新規テーマと同時進行で修正作業も行なっています。 アルゴリズムのコーナーで紹介してきたサンプル・プログラムをいくつか公開しています。「ライン・ルーチン」「円弧描画」「ペイント・ルーチン」「グラフィック・パターンの処理」「多角形の塗りつぶし」を一つにまとめた GraphicLibrary と、「確率・統計」より「一般化線形モデル」までを一つにまとめた Statistics を現在は用意して
ブレゼンハム(bresenham)というアルゴリズムを使ってタイル環境で直線を描画するサンプルです。ブレゼンハムはペイントソフトの直線描画にも使われているそうです。ペイントの直線描画と同じようにドラッグすれば直線が引けます。 bresenham.jar ブレゼンハムアルゴリズム ブレゼンハムアルゴリズムのコードは下のようになります。引数のstartは直線の始点、endは終点です。インスタンス変数のlineに直線を構成するピクセルの座標が入ります。lineは戻り値にしてもいいと思います。 /** * ブレゼンハムアルゴリズムで直線を引く * * @param start 直線の始点 * @param end 直線の終点 */ private void buildLine(Point start, Point end) { int nextX = start.x; int nextY = st
After ruby-processing version, published by norioc on qiita # ruby-processing sketch # http://qiita.com/norioc/items/99514cb659aad03ab7d7 # http://aidiary.hatenablog.com/entry/20050402/1251514618 N = 15 attr_reader :rows, :cols def setup sketch_title 'Bresenham`s Algorithm' @rows = height / N @cols = width / N end def settings size 400, 400 end def build_line(from:, to:) next_x = from.x next_y = f
load_library :vecmath # 参考 # # プレゼンハムアルゴリズム # http://aidiary.hatenablog.com/entry/20050402/1251514618 def setup size 400, 400 end # プレゼンハムアルゴリズムを用いて # fm から to へのラインを求める def build_line(fm, to) next_x = fm.x next_y = fm.y delta_x = to.x - fm.x delta_y = to.y - fm.y step_x = delta_x < 0 ? -1 : 1 step_y = delta_y < 0 ? -1 : 1 delta_x = (delta_x * 2).abs delta_y = (delta_y * 2).abs line =[Vec2D.new(ne
概要 各種のソートアルゴリズムを平面画像として可視化します. 要素は0からn-1までの数で,赤から紫になるに従って大きな数となります. 各ステップでの要素の位置を縦に並べ線でつないでいます. 一番左の列が初期値で一番右の列がソートが完了したリストとなります. 途中経過をメモするタイミングは見栄えを重視して決めています.薄く白い丸が見える場所がその場所です. 計算時間は512個程度では一瞬なので表示していません.比較回数を見てください(バイナリソートが最強に.なってしまいますが....) 使い方 auto shuffle sortボタンを押したときに自動的に初期値がシャッフルされるようになります. random 初期配列をシャッフルします. reverse 初期配列を逆順にします. save 画像をjpgとして保存します. elements 要素数を指定します. thickness 線の太さ
ここしばらく、月刊で「日経ソフトウェア」へHTML5に関する連載をさせていただいています。毎回、HTML5のAPIや、ゲームのアルゴリズムを紹介していたのですが、先日、Twitterで読者の方から、どや顔で紹介した、Fisher-Yatesアルゴリズムが間違っているとのご指摘を受けました。ちなみに、Fisher-Yates法とは、配列をシャッフルする際に用いるアルゴリズムで、非常に少ない手順でよりランダムに並び変えることができます。 それで、改めて調べてみると・・・私が書いた方法では、シャッフルの精度が下がってしまうことが分かりました。お恥ずかしい話です。 私が間違えて書いたコード: // カードを定義 var cards = []; for (var i = 0; i < 52; i++) { cards[i] = i; } // Fisher-Yatesアルゴリズムでシャッフル
こんにちは、あゆめぐです。 今回はダンジョン生成の基本部分。 アルゴリズムそのまま実装したものの状態まで書きました。 はい、相変わらずjavascriptです。 どこかのタイミングでいい加減にc#にしないとな〜と思うんですがjavascriptそのままいろいろ持ってけて便利すぎるんだ〜。 ほら私が好きなActionScript3.0もenchant.jsにしてもjavascript系だからね。 ##考え方 ダンジョンマップを生成するアルゴリズムの解説 こちらの二分割を繰り返す方法の方です。 しかしながらこの実装だとアルゴリズムばればれなのでここからいろいろカスタマイズしないと。 均等に分割する方法はまだ作成していないので気が向いたときにやってみようかと思います。 他にもダンジョン生成にはいろんなアルゴリズムがあって 迷路自動生成アルゴリズム 上記サイトのような本当にダンジョンというのもあり
Graphillion は膨大な数のグラフに対して検索や最適化、列挙を行うための Python モジュールです。このビデオは Graphillion の概要を知るためのチュートリアルです。「フカシギの数え方」 http://youtu.be/Q4gTV4r0zRs の続編として作成されました。 Graphillion is a Python software package on search, optimization, and enumeration for a very large set of graphs. This video is a quick tutorial to learn what Graphillion is. The story follows our previous episode, "Let's count!" http://youtu.be/Q4gT
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く