2017-08-01から1ヶ月間の記事一覧

UnityのHandlesクラスの拡張

Unityで幾何学のアルゴリズムを実装するときに、イメージがしやすいようにHanldesクラスを拡張してデバッグ描画できるようにしました。 以下のようなコードを書くと追加されたDrawerの順に描画されていきます。 var drawer = new Drawer(); var cube = GameO…

組み合わせの等価性を比較するIEqualityComparerのGetHashCode

例えば以下のようなクラスがあったとして class Pair { public int Value1 { get; } public int Value2 { get; } public Pair(int value1, int value2) { Value1 = value1; Value2 = value2; } } Value1とValue2の組み合わせが等しいかを比較したくて次のよ…

Mycetozoa 開発記録 #5

ナビゲーションメッシュの生成 その➂ 前回はユニークな辺を生成したので、今回は辺上に分割するための点を挿入していきます。 辺上に点を挿入する 挿入する方法は単純に始点から終点に向かい一定間隔で挿入していきます。 /// <summary> /// ユニークな辺上に点を挿入</summary>…

Mycetozoa 開発記録 #4

ナビゲーションメッシュの生成 その② 前回メッシュからTriangleのリストを生成したので、今回はさらにユニークなEdgeのハッシュセットを生成します。 ユニークな辺のハッシュセットを生成する NavigationMeshGenerator.cs /// <summary> /// 生成したTriangleのリスト</summary>…

RubyとRailsのメモ

会員制のサイトを作ってくれと頼まれたので会社の同僚の助けを借りてRailsで作成することになりました。(というかほぼ作ってくれてる)。 で、Rails(Ruby)を勉強することになったのでメモ。 rake makeのruby版 db:migrate db/migrate に基づいてテーブルを作…

Mycetozoa 開発記録 #3

ナビゲーションメッシュの生成 その① 先に自前実装のクラスとインターフェースを簡単に説明。 Vertexクラス 座標、IDなどを保持 Edgeクラス 辺を表すクラス 開始頂点と終了頂点をVertex型で保持 IVertexCollectionを継承 Triangleクラス 三角形を表すクラス …

Mycetozoa 開発記録 #2

今日は訳あって Windows + Docker + Rails の環境構築をしてたのですが、ハマってしまい書くことがなくなったのでMycetozoaで採用している最短経路を求める手法を大まかに書きます。 3Dモデルの表面上の最短経路を求める手法 ~概要~ 3Dモデルのメッシュを…

差分抽出アルゴリズムのC#実装

個人で開発しているプロジェクトでDiffのアルゴリズムが必要だったので実装してみました。 今回実装したのはMyersのアルゴリズムというものです。 こちらのサイトを参考にしました。 www.atmarkit.co.jp 論文はこちら http://www.xmailserver.org/diff2.pdf …

Mycetozoa 開発記録 #1

はじめに 人に見られずとも完璧に物事をこなす人間になりたいと常日頃思っていますが、なかなかそうはいきません。 得に個人で開発しているプロジェクトのソースコードを見返すと痛感します。 コードを公開することで品質が高まることもあるのではと思い、以…