タグ

c++とプログラムに関するstopengin0012のブックマーク (2)

  • 安全な DLL の中にあるC++ のクラスのエクスポート

    最初に DLL とは? Windows には Dynamic Link Library ( 以下 DLL ) という、プロセス開始時・起動中に動的にライブラリをリンクする機能があります。このDLL を使うことで、 プログラムを他のアプリケーションと共有してメモリの節約になる 普通のライブラリとしても使え、アイコンやダイアログなどのリソースも格納することが出来る。 DLL の中にある処理やリソースを変更して DLL の変更のみでプログラムを修正することが出来る プロセス間でのメモリ共有を行うことも出来きる UNIX系にも似たような動的リンクライブラリがありますが、UNIX系のはコンパイラ側での対応であり、C言語のソースコードで互換性を保っているUNIXのアプリケーションで、動的にバイナリをリンクしにくい性質があるため、それほど使える機能ではないでしょう。 逆に DLL の欠点 DLLのバージ

  • 回転行列からオイラー角を一意に求める

    通常、回転行列からオイラー角は一意に求められない。そこで制約をつけて一意な値を求める。 X軸、Y軸、Z軸周りの回転行列はそれぞれ以下のようになる。 XYZの順番で回転させると 回転行列の各要素を次のように定義する。 XYZの回転行列からそれぞれの軸の回転角を求めると 上記の式でY軸の回転角度を求めた場合、アークサインを使っているので範囲が-π/2からπ/2になってしまう。つまり90度以上のY軸回転が求められない。 実際に(30, 120, 60) と (-150, 60, -120)は同じ回転を表すが行列からオイラー角を求めたとき、上記の式では後者の回転角度しか求められない。 一意に回転角度を決定するために制約をつける。XYZ軸の回転のうちどれかが固定の場合、次のように行列から他の角度を求める。 xが分かっている場合のオイラー角 cos(x)が0になる場合は yが90度のとき zが分かって

  • 1