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 //テンプレー…

AS3覚え書き1

ActionScript3の文法についてまとめたものです。 変数の宣言 var:int; num:Number=1.3; str:String="abc"; 定数 const PI:Number=3.14; 型 int:整数 Number:数値 String:文字列 Boolean:ブール 文字列型 文字の連結 var str:String = str1 + str2 + "."; 文…

テンプレートを使って配列を作る

静的な配列をコンパイル時に作成するための簡単なコードです。テンプレートを使わずに要素数を自由に指定するなら、#define文などで要素数を定義するか、new・deleteでヒープ領域に要素数だけ確保することになると思います。テンプレートの仕組みを利用する…

テンプレートを使って簡単な漸化式を計算する

コンパイル時に値を計算するための方法についてです。フィボナッチ数列を例にとってみましょう。 この数列の答えはこのようになります。 n 0 1 2 3 4 5 6 7 8 ... 1 1 2 3 5 8 13 21 34 ... 実際に4つほど書き下したものが下の式です。 これに対応するコード…

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

定数 コンパイル時に定数を代入する方法を考えてみます。 Step0 コンパイル後の式がこのようになるためにはどうすればいいでしょうか? cout << 1 << endl; enumで適当な変数名を定義すれば、コンパイル時にプリプロセッサが勝手に数字に置き換えてくれます…

py2exeでexeファイルを作る

2010/3/23 python2.6, Windows Vista上で動作確認。Distutilsは、開発者がPythonモジュールを配布・インストールするため環境構築を行うパーッケージです。 Distutilsの拡張版として提供されているpy2exeというモジュールを使って、Distutilsの従来のコマン…

NumPyのarrayとPILの変換

Python Imaging LibraryのImageクラスのデータをNumpyのarrayとして扱うための方法について。 Numpyの関数を使って直接pixel値を書き換えることが目標です。 まずは両方のライブラリをインポートしておきます。 import numpy import Image PILからNumpyのarr…

テンプレート関数とテンプレートクラス

テンプレートを使った関数とクラスについてのまとめです。 テンプレートが必要な理由 float型の要素を持つベクトルと、int型の要素をもつベクトルを作成することを考えてみます。ベクトル同士の演算は型に依存しない処理ですが、それぞれの型に対してfVector…

C++で作るベクトルクラス その3 〜可変長ベクトル

可変長でN個の要素を持つベクトルを作成するときの注意事項について。 メンバ変数 ベクトルクラスが持つべき情報は、要素の個数と1次元配列の先頭アドレスになります。 class Vector{ private: int m_size; float* m_val; コンストラクタによる初期化につい…

ビューポート変換の式

2次元ワールド座標から2次元ディスプレイ座標への変換式のメモです。 行列を使わずに直接計算しています。 class ViewportTransform{ protected: //Device(Screen)座標系における原点座標 float m_screenOriginX; float m_screenOriginY; //倍率 screen / wo…

C++で複素数クラスを作成する

STLのcomplexクラスについて C++で複素数を扱うにはSTLで用意されているcomplexクラスを利用します。complexクラスはテンプレートで定義されているので、型を指定して扱うことができます。例えば、double型の複素数を扱いたい場合は、complexと記述します。 …

wxPythonのマウスイベント一覧

wxPythonで扱うことのできるマウスイベントは以下の通り。 左ボタン EVT_LEFT_DOWN EVT_LEFT_UP EVT_LEFT_DCLICK 中央ボタン EVT_MIDDLE_DOWN EVT_MIDDLE_UP EVT_MIDDLE_DCLICK 右ボタン EVT_RIGHT_DOWN EVT_RIGHT_UP EVT_RIGHT_DCLICK マウス移動 EVT_MOTIO…

wxPythonのwx.ImageとPython Imaging Libraryの変換方法

wxPythonで用意されているImageやBitmapをPython Imaging Libraryで使うにはどうすればいいのか?という話。 wxPythonはさまざまなフォーマットの画像を読み込めるので便利です。wx.ImageとPILを相互変換できるなら、 読み込んだwxImageをPython Imaging Lib…

STLのalgorithmの練習1

STLのalgorithmを使うと、vectorやlistなどのコンテナに対してソートや置き換え、検索などを簡単に行うことができます。algorithmが提供している関数ごとに違いはありますが、大まかな書式は次のようになります。 std::<関数名>(<前iteretor>,<後ろiteretor>,…

inline関数をヘッダに書く際の注意点

inlineメンバ関数を含むクラスを作成するときにヘッダと実装ファイルを作成する方法について。 下のように、2つのcppファイルで利用するクラスAを作成するとしましょう。 main.cpp #include "A.h" int main(){ A a; a.method(); return 0; } A.hA.cpp #ifnde…

C++で2次元アフィン変換クラスを作る

2次元座標においてある点を別の点に移す変換のなかで、下の基本変換の合成変換として表現できるものをアフィン変換と呼びます。 例えば、(1,2)だけ平行移動させて、原点を中心に30°回転させる変換は、と表すことができます。 平行移動(x: ,y: ) 拡大縮小 回…

C++で作るベクトルクラス その2

3次元版を作っていて気づいたこと。 ベクトルクラスを作るときに、x,y,zというメンバを使ってコードを書くか、配列v[i]を利用してコードを書くか迷うところですが、3次元ならx,y,zを使って書いた方が分かりやすいかもしれません。↓ Vector3D.h class Vector3…

C++で作る行列クラス その1

3×3の行列クラスを作ってみます。 こちらも、できるだけ数式に近い形で扱いたいということで演算子のオーバーロードを使って実装してみます。行列クラスをこんな感じで使うのが目標。 Matrix3D A( 1, 0, 0, 0, 1, 0, 0, 0, 1 ); Matrix3D B( 2, 3, 4, 3, 5, …

wxPythonでGUIアプリを作る GUIコンポーネントとサイザー

GUIを作るために必要な要素(Frame,button,text,textcontrolなど)はwxWindowクラスの派生クラスとして提供されています。GUIを設計するためにこれらの要素を一つずつフォームに配置していきます。 例えばwxFrameがwxMuneBarやwxPaneを含んでいて、さらにwxPan…

wxPythonでGUIアプリを作る 〜XRCでGUI設計

XRC wxPythonでGUIアプリを作る GUIコンポーネントとサイザー - white wheelsのメモの続き。 GUIを作るには各コンポーネントをサイザーの上に載せて設計するというのが前回の話です。 簡単なGUIならまだしも、複雑なインターフェースを作ろうとすると、コー…

wxPythonのwxImageで画像を表示する

画像を読み込んで表示させる簡単な例です。(file open error == IOErrorの処理を入れないといけない) 利用するクラスはwx.Image。初期化で読み込む画像ファイルパスを指定します。 Imageインスタンスそのままでは表示できなくて、bitmapに変換してから初めて…

簡単にウインドウを作成するコード その2

ウインドウを簡単に作成するコード その1 - white wheelsのメモのつづき Windowクラスを作成しましたが、残念ながらstaticなWindowProcedureの中では、静的でない変数やメソッドを利用することができません... WindowProcedureの中でWindowBaseインスタンス…

wxPythonでGUIアプリを作る フレーム&メニュー

参考サイトGetting Started - wxPyWiki wxPythonは、マルチプラットフォームなGUIアプリを比較的簡単に作成することができるモジュールです。wxPythonの使い方について簡単にまとめてみます。まずはフレームを単に表示するプログラム。 import wx app = wx.A…

wxPythonでGUIアプリを作る イベント処理

メニューを選択したときのイベント処理を実装してみましょう・ イベント処理 import wx class MyFrame(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(200,100)) filemenu= wx.Menu() menuExit = filem…

Python Imaging Libraryのshow()で画像が表示されない

Windows VistaでWindows photo viewerが規定のプログラムとして設定されているとなぜか画像が表示されませんでした。 ↓ bitmapファイルの関連付けをとりあえずpaintにしてshow()メソッドを呼び出すとうまく表示されます。Irfan Viewを入れていたのでそちらに…