Path: chuka.playstation.co.uk!news1.scei.co.jp!usenet From: Naohisa Kamei Newsgroups: playstation.ny.program.labo Subject: =?iso-2022-jp?B?GyRCJSolViU4JSckcjJzRT4kNSQ7JGskSyRPISkbKEo=?= Date: Tue, 29 Apr 1997 23:17:37 +0900 Organization: PlayStation Net Yarouze Lines: 68 Message-ID: <33660301.777C@ibm.net> NNTP-Posting-Host: 202.135.105.80 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 2.01I [ja] (Win95; I) 会員番号dcn01516の亀井尚久です。 質問の記事を投稿させて頂きます。 オブジェクト(3Dモデル)を回転させるのには どうしたらいいのでしょうか。教えて下さい。 因みに、ガイドブックに載っている太陽・地球・月の 公転ではなく、モデル自体の自転(?)です。 自分では、後述のような関数を作ってみましたがダメです。 「これじゃあ、できる訳がない…」とか「ここをこうすれば…」とか 教えて頂けると助かります。 質問に答えて頂ける方、お手数ですが、なるべくこちらの方にお願いします。 E-Mail: t93123nk@sfc.keio.ac.jp それでは、失礼します。 以下がソースリスト(抜粋)です。 #define DEG (4096/360) /* 回転角度の単位 */ GsDOBJ2 obje[OBJECT_MAX]; /* オブジェクトデータ */ GsCOORDINATE2 oworld[OBJECT_MAX]; /* 座標系データ */ int obje_num; main(){ SVECTOR tvect; /* 平行移動量 */ SVECTOR rvect; /* 回転マトリックス */ : : tvect.vx=- 40; tvect.vy= 20; tvect.vz= 0; rvect.vx= 0*DEG; rvect.vy= 0*DEG; rvect.vz= 45*DEG; set_object_sub(&tvect,&rvect); : : } /* "set_object_sub" オブジェクトデータのセット */ set_object_sub(SVECTOR *tvect,SVECTOR *rvect){ GsCOORDINATE2 *wp; GsDOBJ2 *op; MATRIX w_matrix; /* ワーク用マトリックス */ /* マトリックスの設定 */ w_matrix.t[0]=tvect->vx; w_matrix.t[1]=tvect->vy; w_matrix.t[2]=tvect->vz; RotMatrix(rvect,&w_matrix); /* 座標系の設定 */ wp=oworld+obje_num; GsInitCoordinate2(WORLD,wp); wp->flg=0; wp->coord=w_matrix; /* オブジェクトの設定 */ op=obje+obje_num; GsLinkObject4((u_long)(MODEL_ADDR+12),op,0); op->attribute=0; op->coord2=wp; obje_num++; } (以上です。長くなってしまい申し訳ありません…)