[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)