- 97 名前:91 mailto:sage [04/07/14 11:05 ID:PzgWFfKg]
- なんとなくそれっぽい感じになりますた、根本的に違うかも・・
// クライアント座標から-1.0〜1.0に変換 half.X := (ClientWidth div 2); half.Y := (ClientHeight div 2); pos.x := ((pos.x - half.X)/(ClientWidth)); pos.y := - ((pos.y - half.Y)/(ClientHeight)); //適当にそれっぽい値にする pos.x := pos.x * ((1+pos.Z)); pos.y := ((pos.y * Scene.FovH)*(1+pos.Z))/2;// // プロジェクションマトリクスで座標変換します。 pos:=NowTransform(pos, NowInvMatrix(Scene.ProjectionMatrix)); testFigure2.Figure.TopFrame.SetTranslation(Camera ,pos); これで適当なZ値で2点を取ってその直線に交差する平面を探せば良いのかな? DirectXにD3DXIntersectって関数があるらしいけどQDの場合は自前でやるしかないのかなぁ・・
|

|