2010-01-01から1年間の記事一覧

Java文法メモ 変数〜制御構造

Javaを使うことになったのでまとめてみました。 コメント // comment /* 複数行comment */ 変数 int i = 0; static int i = 0; //静的変数 static final float PI = 3.141592; //定数 データ型とリテラル プリミティブなデータ型 boolean byte char short in…

Java文法メモ クラス その1

クラスの宣言 クラスはフィールド(属性)とメソッド(操作)で構成されます。 Class -field1 -field2 +method1 +method2 クラス宣言の例 class Person{ private int m_age; //フィールド private String m_name; //フィールド public void sleep() { //メソッド…

Java文法メモ クラス その2

クラスの継承 class Base { //... } class Sub extends Base{ //... } メソッドのオーバーライド class Base { void execute(){ //Baseクラスが行う処理 } } public class Sub extends Base{ void execute(){ //Subクラスが行う処理 } } //利用例 Sub obj = …

XRCを使うのに必要なlib

wxWidgetsでXRCを使うのに"wxmsw28d_xrc.lib"だけリンクさせれば十分だと思ったのですが、コンパイルが通らなかったので色々試したところ以下のライブラリをリンクするとうまくいきました。 Debugビルド wxmsw28d_xrc.lib wxbase28d_xml.lib wxmsw28d_adv.li…

wxWidgetsを使ってみよう

C++

VC++ 2008 ExpressでwxWidgetsを使うための設定方法をまとめてみました。(2010/9/11時点の情報) 参考サイト: http://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide wxWidgetsとは wxWidgetsとはC++でGUIを作成することができるクロスプラットフォーム…

OpenGL覚え書き5 シェーディング

光源から照射された物体を描画するための処理をシェーディングと呼びます。実際のモデルでは、光源から直接物体に到達する光だけでなく、間接的に物体を照らす光や、物体表面で反射・透過した光などが存在します。 環境光(ambient light) 光源から周囲と相互…

OpenGL覚え書き4 隠面消去

隠面消去を行うには、バックフェースカリング、奥行きソート法、スキャンライン法、zバッファ法などいくつかの手法が知られています。 zバッファ法は、ウインドウの各画素について投影面から物体の距離(デプス)の値が保存されたバッファを作成して、距離が大…

OpenGL覚え書き3 座標系

CGにおける座標系 CGで使われる座標系には次のようなものがあります。 モデリング座標系 各頂点の座標系 ワールド座標系 物体が配置されている座標系 視点座標系 カメラからみた座標系 デバイス座標系 長さ2×2で中心を原点とした正方形型の座標系 ウインドウ…

OpenGL覚え書き1 ウインドウ

OpenGLの使い方についてまとめてみたいと思います。サンプルコードはPyOpenGLで作成しています。 OpenGL プラットフォーム非依存のグラフィクス用インターフェース。関数の接頭辞はgl GLU OpenGLのいくつかの関数を利用して有用な機能としてまとめたライブラ…

OpenGL覚え書き2 描画

デフォルトの状態では原点がウインドウの中心で、幅高さが1.0の座標系で設定されています。 描画色の設定 glColor**関数で色を設定します。 例えばglColor3fはfloat型の値RGB値を引数にする関数、glColor4dはdouble型のRGBA値を引数にします。 RGBの値は0.0…

テンプレートメタプログラミング(ループ)

ループの基本形です。テンプレート引数をデクリメントして再帰的に呼び出すことで実現することができます。 template <int N>struct UNROLL { static void iteration(int i) { cout<< i <<endl; UNROLL<N-1>::iteration(i+1); } }; template <> struct UNROLL<0>{ static void iterati</endl;></int>…

EclipseでProcessingを動かす

参考サイト(英語)→http://processing.org/learning/tutorials/eclipse/ Eclipseを導入してからのお話です。 新しいプロジェクトを作る File→New→ProjectでJava Projectを作成。 ライブラリの追加 processing/lib/core.jarがprocessingのコアライブラリのよう…

Waveファイルの生成

Waveフォーマット ファイルの先頭から順に「RIFFヘッダ」,「fmtチャンク」,「dataチャンク」と呼ばれるメモリ領域に分かれています。 各チャンクはそれぞれ識別子とチャンクのサイズ、データと分かれており、波形データはdataチャンクのデータ部分に記録され…

AS3覚え書き6 :テキスト

TextFieldクラス テキストを表示するには、TextFieldクラスを利用します。TextFieldクラスのプロパティには以下のものがあります。 var myTextField :TextField = new TextField(); myTextField.text = "12345"; addChild(myTextField); 色の設定 myTextFiel…

AS3覚え書き7 :音声

音声ファイルの再生 音声を扱うクラスはSoundクラスです。これはEventDispatcherクラスの派生クラスであり、DisplayObjectは継承していません。 外部から音声データを読み込む場合は、画像データのときと同様にロードが完了するまで待つ必要があります。その…

AS3覚え書き5 :画像

Actionscriptで画像を扱うにはBitmapクラスやBitmapDataクラスを利用します。 BitmapDataクラス Bitmap画像の各画素データを記憶するクラスです。 プロパティ width:int height:int 幅と高さ メソッド 画素値の取得 getPixel(x:int, y:int):uint getPixel32(…

AS3覚え書き5 :フィルタ

FilterはBitmapFilterの派生クラスとして様々なものが定義されています。 DisplayObjectクラスにはfilterという配列のプロパティを持っており、この表示オブジェクトにかけたいフィルタを格納します。 フィルタの追加 各種フィルタはflash.filtersで定義され…

FlashDevelop+AS3でクラスを作成する

プロジェクトの作成 Project>New ProjectからAS3 projectを選択 Mainクラスの作成 必須です。プロジェクトを作成すると自動生成されています。 package { import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { publ…

表示オブジェクト(DisplayObject)のクラス構造

DisplayObjectのクラス継承関係 Actionscriptでは組み込み型以外はすべてObjectクラスを継承しています。グラフィクスを描くためのSpriteやMovieClipクラスや画像を表示するためのBitmapクラスなど、基本的に表示するものは全てDisplayObjectを継承していま…

AS3覚え書き3 :グラフィクス

絵を描くにはSpriteクラスのgraphicsプロパティを利用します。 簡単なSampleクラスを例にとって基本的な図形を描いてみます。 package { import flash.display.Sprite; public class Sample extends Sprite { public function Sample():void { myDrawRect();…

AS3覚え書き4:イベント

AS3では、イベントの仕組みはEventDispatcherクラスで定義されています。SpriteやMovieClipなど代表的なクラスは全てEventDispatcherクラスを継承しているのでイベント処理を行うことができます。 イベントリスナー イベントを受け取るための処理をイベント…

matplotlibを使う

matplotlibはpythonでグラフを描くためのライブラリです。numpyなどと組み合わせると簡易matlabのような環境を整えることができます。 インストール 公式サイト→http://matplotlib.sourceforge.net/index.html matplotlib 0.99.1 is available for download…

matplotlibで3Dグラフを描画する

準備 データ処理用にnumpy、プロット用にpyplot、3次元なのでmpl_toolkits.mplot3dをインポートします。 from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np 描画するデータの作成 3次元で描画するにはメッシュ(2…

可変個数の引数について

pythonでは、*argsという書式を使うと関数へ可変個数の引数を渡すことができます。 def function(arg1, arg2, *args): print "arg1:", arg1 print "arg2:", arg2 for arg in args: print "arg:", arg function(0, 1, 2 , "aaa", "bbb") arg1: 0 arg2: 1 arg:…

matplotlibをwxPythonで扱う

matplotlibで描いたグラフをwxPythonのパネル上に表示できると、matplotlibの機能を直接利用できるアプリケーションを作成することができます。次のコードは、3次元のグラフをパネル上にプロットさせて表示させた例です。 import matplotlib matplotlib.inte…

matplotlibで画像を表示する

matplotlibで画像を表示させるための手順について。 matplotlibはPILを利用して画像の描画を行っているため、PILの機能に準じた処理になります。PILを使って画像の値を配列形式として読み込む作業を、matplotlibを使うと簡単に行うことができます。 画像の読…

PyOpenGL3.0について

PyOpenGLはOpenGLをPythonで扱うためのライブラリです。 PyOpenGL3.0のインストール PyOpenGL3.0の公式サイトhttp://pyopengl.sourceforge.net/documentation/installation.html Downloads>PyOpenGLからダウンロード。PyOpenGL-3.0.1.win32.exeを起動すると…

AS3覚え書き2 :クラス

package パッケージを読み込むには次のようにimport文を用います。 import package名.クラス名 import package名.* //指定したpackage内の全てのクラスを読み込む クラスの定義 クラスおよびメンバ変数とメソッドの定義は次のようにpackageの中に記述します…

Eclipse+PyDev環境でOpenCV2.0を使う

PyDevが既にインストールされているものとします。 OpenCV2.0をProgram Filesにインストールしている場合は、C:\Program Files\OpenCV\Python2.6\Lib\site-packagesにpython用opencvライブラリが入っているので、ここにパスを通します。 Window>Preference>P…

テンプレートメタプログラミング (条件分岐)

条件分岐 コンパイル時に条件分岐を行うためのテンプレートの使い方です。 テンプレート引数にtrueまたはflaseを指定すると、それぞれ100,200が代入されるようにしてみます。 //テンプレート引数にtrueを入れた場合 cout << 100 << endl;//100 //テンプレー…