検索結果 14 件

by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dの追跡カメラの特異姿勢問題
返信数: 9
閲覧数: 4990

Re: 3Dの追跡カメラの特異姿勢問題

行列を使うのなら 平行移動行列 D3DXMATRIX out; out._11 = out._22 = out._33 = out._44 = 1.0f; out._12 = out._13 = out._14 = out._21 = out._23 = out._24 = out._31 = out._32 = out._34 = 0.0f; out._41 = Trans.x; out._42 = Trans.y; out._43 = Trans.z; 回転行列 D3DXMATRIX outRot; outRot._11 = ( cos( zrot ) * cos( yrot ) ) + ...
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dの追跡カメラの特異姿勢問題
返信数: 9
閲覧数: 4990

Re: 3Dの追跡カメラの特異姿勢問題

仰る通り、仰角と方位角のみで計算しています(Z軸周りの回転は考慮に入れていません)

2つの角度が使われる座標計算、とはロボットアームの運動方程式のような2自由度系を考えなくてはだめだということでしょうか?
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dの追跡カメラの特異姿勢問題
返信数: 9
閲覧数: 4990

3Dの追跡カメラの特異姿勢問題

こんにちは。現在よくある飛行機の後方に視点を置き、前方に注視点を置くというカメラを制御するプログラムを書いています そこで、視点と注視点を以下のようなコードで求めました(PIは円周率、EYLENGTHは視点までの距離、ATLENGTHは注視点までの距離です)。描画はDirectXを使っているので左手系になっています // 視点の座標を計算 D3DXVECTOR3 eyePos; eyePos.x = character[ CODE_PLAYER ]->pos_.x + EYELENGTH * cos(character[ CODE_PLAYER ]->rot_.y - PI / 2 ); ey...
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: Visual Studioのmakeを外部から行いたい
返信数: 4
閲覧数: 4593

Re: Visual Studioのmakeを外部から行いたい

パスの問題だったんですね。こちらも解決しました。ありがとうございます
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: Visual Studioのmakeを外部から行いたい
返信数: 4
閲覧数: 4593

Re: Visual Studioのmakeを外部から行いたい

とりあえずmsbuildが一番お手軽そうだったので、msbuildで実行する方向でやってみました ということで、以下の手順で行いました 1.msbuildにPATHを通す(環境変数のPATHに”C:\Windows\Microsoft.NET\Framework\v4.0.30319”を追加) 2.実験用に空プロジェクト「makefiletest」を作成 3. makefiletestにmain.cpp,main.hを追加 //main.cpp #include <iostream> #include "main.h" int main() { std::cout << "Hello, fro...
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: Visual Studioのmakeを外部から行いたい
返信数: 4
閲覧数: 4593

Visual Studioのmakeを外部から行いたい

開発環境:Visual Studio 2013 (C++) こんにちは。現在完成しているVisual Studioのプロジェクト(.sln)をビルドしてexeファイルを作るbatファイルを作りたいと考えています このようなことは可能なのでしょうか? メイクファイルプロジェクトを作り、コードを全て移植することも考えたのですが、こちらではプロパティ画面で追加のインクルードディレクトリやライブラリディレクトリを設定する項目がなく、DirectXのような外部インクルードができないという問題があります 少々漠然とした問ですが、自分でもどの方向にアプローチして挑戦したらいいのか解らない状態ですので、よろし...
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: C++のオーバーライドで機能追加
返信数: 2
閲覧数: 2060

Re: C++のオーバーライドで機能追加

すみません。ありがとうございました
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: C++のオーバーライドで機能追加
返信数: 2
閲覧数: 2060

C++のオーバーライドで機能追加

こんにちは。オーバーライドに関する質問です C#の場合、以下のように継承したとします class car{ public virtural void DrawSpec() { Console.WriteLine("car"); } }; class taxi : car{ public override void DrawSpec() { base.DrawSpec(); Console.WriteLine("AutoDoor"); } }; というように、オーバーライドの継承元のクラスの処理を実行した後、継承先の処理を実行するという機能の追加ができますが、C++でこのようなことをすることは可...
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタ型の配列を引数に渡した時の書き方
返信数: 10
閲覧数: 4547

Re: ポインタ型の配列を引数に渡した時の書き方

そのときの形が

コード:

void renderObject( Task* pTask[ NUMOFOBJECT ] );
になっていました。

コード:

void renderObject( Task* pTask[ ] );
に修正することで、無事に直りました。ありがとうございました
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタ型の配列を引数に渡した時の書き方
返信数: 10
閲覧数: 4547

Re: ポインタ型の配列を引数に渡した時の書き方

あ、まさしく例外のことが起こってます(汗 ポインタだからインスタンスはまだ生成されてないですね。 Task *task[NUMOFOBJECT]; for ( int i = 0; i < NUMOFOBJECT; ++i ) { task[i] = new Task(); task[i]->init(); } で例外問題は回避できますが、こうなると最初の問題に戻って関数を呼ぼうとすると renderobject(task); と書くと、「関数呼び出しの引数が多すぎます」となりエラーが出ます。 ・・・やっぱり100個引数を用意して100回drawするしか手がないのでしょうか?
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタ型の配列を引数に渡した時の書き方
返信数: 10
閲覧数: 4547

Re: ポインタ型の配列を引数に渡した時の書き方

渡すのはそれで済んだのですが、渡すものがintではなくクラスなので、定義した後の処理でハンドルされない例外が発生してしまうみたいです。(下記はメンバ変数を初期化するだけの処理です)
こちらの原因はわかりますでしょうか?

コード:

Task	*task[NUMOFOBJECT];
	
for ( int i = 0; i < NUMOFOBJECT; ++i ) {
	task[i]->init();                               // ここで例外発生
}
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタ型の配列を引数に渡した時の書き方
返信数: 10
閲覧数: 4547

ポインタ型の配列を引数に渡した時の書き方

こんにちは、現在以下のようなコードがあります void Renderer::renderScene2( Task* pScene1, Task* pScene2 ) { if (pScene1 == 0 || pScene2 == 0) { return; } // ビューポートと深度バッファ(バックバッファ)のクリアとステンシルバッファの削除 if ( FAILED( pD3DDevice_->Clear( 0, NULL, // クリアする領域は全面 D3DCLEAR_STENCIL | // ステンシルバッファをクリア D3DCLEAR_TARGET | // バックバッファを指定 D3...
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXでインデックスバッファの値が上書きされる
返信数: 2
閲覧数: 1620

Re: DirectXでインデックスバッファの値が上書きされる

まさにその通りでした。ありがとうございました! 具体的にはScene.cpp,Scene2.cppのdraw関数のDrawIndexedPrimitiveの直前でインデックスバッファを再設定したらうまくいきました。具体的には以下の通りです(Sceneのメンバ関数ですがScene2も同様です) void Scene::draw( LPDIRECT3DDEVICE9 pD3DDevice ) { if ( pD3DDevice == 0 ) { return; } if ( pMyVB_ == 0 ) { return; } // 座標変換(カメラの設定など) transform( pD3DDev...
by OROCHI
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXでインデックスバッファの値が上書きされる
返信数: 2
閲覧数: 1620

DirectXでインデックスバッファの値が上書きされる

使用OS:Windows 8 開発環境:Visual Studio 2013 使用ライブラリ:DirectXSDK June 2010 こんにちは。現在DirectX9を用いて、頂点と頂点インデックスを指定し「複数の」オブジェクトをレンダリングすることを考えています そこで「頂点バッファを作成」→「頂点バッファをロック」→「頂点の座標値の指定」→「頂点カラーの指定」→「頂点データのアンロック」→「頂点インデックスバッファの作成」→「インデックスバッファをロック」→「インデックスの書き込み」→「インデックスバッファをアンロック」という手順を2回繰り返し、それぞれの頂点座標とインデックスバッファを...

詳細検索ページへ移動する