雑記帳

ブログを使わずにArrangeNoteで作っている公開雑記帳

Sep 05, 2007 - おや?

VAIO typeT(TZ)上のXPに.NET Framework 3.5 beta 2を修復インストールすると、 .NET Framework 2.0 Service Pack 1と.NET Framework 3.0 Service Pack 1もインストールされていました。

まだ正式には発表されていないみたいようですが...

Sep 03, 2007 - あれ?

.NET Framework 3.5 beta 2が入っていないVistaでもViewport2DVisual3Dクラスが使えちゃった。

実は.NET Framework 3.0には既にViewport2DVisual3Dクラスが実装されていた?

Sep 03, 2007 - Direct3DはFPU制御ワードを変更する

通常は気にしなくてもよいと思いますが、一応、メモ。トリビアかなあ。

IDirect3D9::CreateDeviceのBehaviorFlagsにD3DCREATE_FPU_PRESERVEフラグを指定しないでデバイスを初期化すると、IA32の浮動小数点制御ワードが_PC_24、つまり単精度になってしまいます。

double numerator = 8.0;
double denominator = 20.0;
double result = numerator / denominator;    // 0.4にならない

D3DCREATE_FPU_PRESERVEフラグを指定しないときは、doubleの除算処理の前後に_controlfp_s関数でFPU制御ワードを一時的に_PC_53にしてあげればよい、と思いますが、C++/CLIで/clrオプションを付けてコンパイルすると、C4996警告が発生します。

Sep 03, 2007 - Viewport2DVisual3Dで遊ぼう

.NET Framework 3.5で新しく追加されるViewport2DVisual3Dクラスを使うと、 テキストボックスやボタンなどのコントロールを3D空間上で表現できます。

で、先月の記事に書いたスクリプトをさらに改造してみました。

この2つのスクリプトを同一フォルダにダウンロードし、 コマンドプロンプトからipy.exeを起動して、次のようにコマンドを入力すると、 立体的に波打つテキストエディタが動きます。

# コマンドプロンプトでipy.exeを起動して、
# 以下のコマンドを順に入力してください。
from control3d import *
win = Control3D( 250, rotY(0), Brushes.Green, transparent=True )
win.Show()
win.add( Label( Content='テキストを入力してください(_T):' ), 10, 0 )
win.add( TextBox( Width=230, Height=200, AcceptsReturn=True ), 10, 20 )
win.add( Button( Content='OK' ), 220, 220 )
win.rotation.Angle=50
win.wave()

記事の一覧

Copyright © 2007 Koichi Yamamoto