3次元から2次元へ

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ヒューガ

3次元から2次元へ

#1

投稿記事 by ヒューガ » 13年前

画像
DXライブラリです。
上の図で丸は3次元物体、四角は画面上を走って(?)丸と重なると「lockon」と出ます。
このようにするにはどうしたらいいでしょう?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 3次元から2次元へ

#2

投稿記事 by softya(ソフト屋) » 13年前

前のトピックを放置しないでくださいね。
「角度からベクトル • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=11040

>上の図で丸は3次元物体、四角は画面上を走って(?)丸と重なると「lockon」と出ます。

ConvWorldPosToScreenPos、ConvScreenPosToWorldPosで出来ると思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒューガ

Re: 3次元から2次元へ

#3

投稿記事 by ヒューガ » 13年前

放っておいてごめんなさい。
上記の関数で成功しました。ありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 3次元から2次元へ

#4

投稿記事 by softya(ソフト屋) » 13年前

ヒューガ さんが書きました:放っておいてごめんなさい。
上記の関数で成功しました。ありがとうございました。
どう使ったのかも書いてくださいね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒューガ

Re: 3次元から2次元へ

#5

投稿記事 by ヒューガ » 13年前

コード:

void container_calc(){
	for(int i=0;i<ENEMY_MAX;i++){
		if(container[i].xy.x>=20&&container[i].xy.x<=620&&container[i].xy.y>=20&&container[i].xy.y<=460){
			if(container[i].f==0){
				container[i].f=1;
			}
		}else{
			container[i].f=0;
		}
	}
}

コード:

void container_graph(){
	for(int i=0;i<CONTAINER_MAX;i++){
		container[i].xy=ConvWorldPosToScreenPos(enemy[0].xyz);
                if(container[i].f==1){
					SetDrawBright(0,255,255);
                        DrawRotaGraphF(container[i].xy.x,container[i].xy.y,1,0,frame,TRUE);
						SetDrawBright(255,255,255);
                }
        }
}
問題が見つかりました。
目標が自分の後ろでもコンテナが映ります。
どうやって目標が前にあるか後ろにあるか判別できるのでしょう?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 3次元から2次元へ

#6

投稿記事 by softya(ソフト屋) » 13年前

CheckCameraViewClipでチェックできると思います。
あまりリファレンスを見てないようですが、リファレンスを見た方が良いですよ。
http://homepage2.nifty.com/natupaji/DxL ... nc_3d.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒューガ

Re: 3次元から2次元へ

#7

投稿記事 by ヒューガ » 13年前

コード:

void container_graph(){
	for(int i=0;i<CONTAINER_MAX;i++){
		container[i].xy=ConvWorldPosToScreenPos(enemy[i].xyz);
                if((container[i].f==1)&&(CheckCameraViewClip(enemy[i].xyz)==TRUE)){
					SetDrawBright(0,255,255);
                        DrawRotaGraphF(container[i].xy.x,container[i].xy.y,1,0,frame,TRUE);
						SetDrawBright(255,255,255);
                }
        }
}
CheckCameraViewClipが識別子が定義されてませんとなるのですが
どうすればいいのでしょう?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 3次元から2次元へ

#8

投稿記事 by softya(ソフト屋) » 13年前

最新のDXLIBでしょうか?
日々変化しているので最新じゃないと存在しない関数かも知れません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒューガ

Re: 3次元から2次元へ

#9

投稿記事 by ヒューガ » 13年前

さっき更新しました。ver3.08cです。
でも識別子が定義されないとでます・・・

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 3次元から2次元へ

#10

投稿記事 by softya(ソフト屋) » 13年前

あれ?確かにないですね。
DXLIB作者さんの勘違いか名前が変わったかですね。
ちと調べてみます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒューガ

Re: 3次元から2次元へ

#11

投稿記事 by ヒューガ » 13年前

お願いします・・・

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 3次元から2次元へ

#12

投稿記事 by softya(ソフト屋) » 13年前

どうやら関数が行方不明のようです。3.07bで追加されたはずなのですが。
これは、DXLIB作者さんの掲示板で問い合わせされた方が良さそうです。

代替えの方法としては
(1) カメラのビューマトリクスを得る。GetCameraViewMatrix
(2) カメラの前か後ろか判定したい物体の座標を、VTransform()でビュー変換します。
(3) ビュー変換されたz値がプラスならカメラの前にあるはずです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒューガ

Re: 3次元から2次元へ

#13

投稿記事 by ヒューガ » 13年前

いつの間にか怒られなくなりました。
しかし前と変わりません。
上のコードで大丈夫ですよね?・・・

ヒューガ

Re: 3次元から2次元へ

#14

投稿記事 by ヒューガ » 13年前

TRUEじゃなくてFALSEでしたwww

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 3次元から2次元へ

#15

投稿記事 by softya(ソフト屋) » 13年前

ヒューガ さんが書きました:TRUEじゃなくてFALSEでしたwww
結局解決したのでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒューガ

Re: 3次元から2次元へ

#16

投稿記事 by ヒューガ » 13年前

解決しました。コードは上のやつです。

閉鎖

“C言語何でも質問掲示板” へ戻る