[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:01533] Re: 視点の移動の仕方について
━━━━━━━━━≫≫あなたの理想のタイプは?≪≪━━━━━━━━━
■■■ −−−あなたにふさわしい相手をご紹介します−−− ■■■
■◇■ ■◇■
■■■ ☆相性性格診断☆PRP診断テスト無料実施中!☆ ■■■
< http://www.sunmarie.com/cgi-bin/br.cgi?AccessCode=mltdttt002 >
------------------------------------------------------------------------
えんどうです。
いろいろなことがあり返信が遅れました。
> 物体の移動や回転、ズームを、
> 物体の移動ではなく(物体の座標を変更させずに)
> 視点の移動で表現したいのですが、
> そういった関数または方法はありますか?
もしかして polar-view のようなことがやりたいんでしょうか?
OpenGL での polar-view はこんな感じなので、
void
polarView( GLdouble radius, GLdouble twist,
GLdouble talitude, GLdouble longitude )
{
glTranslated( 0.0, 0,0, -radius );
glRotated( -twist, 0.0, 0,0, 1.0 );
glRotated( -latitude, 1.0, 0.0, 0.0 );
glRotated( longitude, 0.0, 0.0, 1.0 );
}
似たようなことをやってみると良いかも知れません。
(逐語訳でいけるのかな..?)
良く分からないのは、物体の座標を変えたくない理由です。
シーングラフ構造はどんな風になっているのでしょうか?
P.S.
こんなの
http://www.cs.buffalo.edu/~yj3/cs480/recitation/rec3.html
void
polarView( GLdouble distance, twist, elevation, azimuth )
{
glTranslated(0.0, 0.0, -distance);
glRotated(-twist, 0.0, 0.0, 1.0);
glRotated(-elevation, 1.0, 0.0, 0.0);
glRotated(azimuth, 0.0, 0.0, 1.0);
}
とか、こんなの
void
polarViev( GLfloat distance, GLfloat azimuth,
GLfloat incinence, GLfloat twist )
{
glTranslate( 0.0, 0.0, distance );
glRotatef( twist, 0.0, 0.0, 1.0 );
glRotatef( incidence, 1.0, 0.0, 0.0 );
glRotatef( azimuth, 0.0, 0.0, 1.0 );
}
もあるけどどれが正しいんだろう。
--
ENDO Yasuyuki <yasuyuki@xxxxxxxxxxxx>
http://www.ss.iij4u.or.jp/~eyasuyuk/ (Personal/Japanese Only)
http://www.javaopen.org/jfriends/ (Japanese Only)