QtでOpenGL描画

※環境はQt SDK 4.7.3, OpenGL 2.1 QtでOpenGLを利用するにはQGLWidgetクラスを利用します。このクラスはOpenGL絡みの抽象メソッドを3つ持っています。 ・initializeGL(初期化処理) ・resizeGL(フレームバッファサイズ変更時処理) ・paintGL(描画処理) 実際に…

QImageを利用してQGLWidgetに画像を描画する

QImageクラス QImageはpngやjpgなどいくつかのフォーマットの画像を読み込んでRawデータを保持することができるクラスです。 利用するときはqimage.hをインクルードすればよいです。 #include <qimage.h> 画像の読み込み loadメソッドを使います。 QImage img; bool re</qimage.h>…

MacOSXにeclipseを導入する

2011/8/5 MacOSX 10.7 Lion にeclipse 3.7(Indigo)をインストールする手順です。 同時にプラグインをいくつか入れてみましたのでメモしておきました。ところどころ端折っています。 eclipseのインストール 公式サイトからJava開発環境をダウンロード → http:…

Xcode4でglutを動かす手順

上記タイトルのメモ。まずXcodeを起動します。 プロジェクトの作成 "Create a new Xcode Project"→MacOSX→Application→"Command Line Tool"→"Next" Product Nameにプロジェクト名入力(例えば"glut_sample"), Type→"C++"→"Next" プロジェクトパスを指定して"c…

Internal Server Error

単純ミスでCGIが動作しなかったのでメモしておきます。 (あまり環境依存の話題ではないですがUbuntu10.4LTS + Apache2.2+perl5) usr/lib/cgi-bin/test.plを作成 #!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello, World."; ・症状:設定…

mimeTeXを使ってHTMLに数式を表示させる

MathMLを使うのが主流になりそうですが、、 mimeTeXのダウンロード http://www.forkosh.com/mimetex.html からmimetex.zipをダウンロード→展開。展開したディレクトリに移動。 mimeTeXのコンパイル README(III.COMPILATION AND INSTALLATION)にコンパイル手…

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:…