「RubyでOpenGL」の編集履歴(バックアップ)一覧に戻る
RubyでOpenGL - (2008/12/21 (日) 04:02:48) のソース
[[GLUTによる「手抜き」OpenGL入門>>http://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html]] 和歌山大の先生が学生向けに書かれたものらしく、それなりにわかりやすい。 想像力をつけさせるためなのか、スクリーンショットが1枚もない。 [[RubyでOpenGL>>http://d.hatena.ne.jp/verus/20080225/1203880010]] [[ruby-openglでお手軽3Dプログラミング>>http://doruby.kbmj.com/akio0911_on_rails/20081009/ruby-opengl_3D_]] [[ruby-openglで三角形を描画する>>http://doruby.kbmj.com/akio0911_on_rails/20081026/ruby-opengl_]] [[藤井研記録板 個別記事 更新・ツッコミページ>>http://ex.osaka-kyoiku.ac.jp/~fujii/JREC4/jrec1.cgi?k=4]] [[glutTimerFunc>>http://balsa.mis.hiroshima-u.ac.jp/interface/opengl/section07-19.html]] [[モデルビュー変換>>http://wisdom.sakura.ne.jp/system/opengl/gl11.html]] これらのサイトを参考にしながら和歌山大のチュートリアルをRuby語に翻訳しながら作ってみたのが以下のもの。 #highlight(ruby){{ require "opengl" require "glut" display = proc { GL.Clear(GL::COLOR_BUFFER_BIT) GL.Color3d(0.0, 0.0, 0.0) GL.Begin(GL::LINES) #for i in 0..11 #AB GL.Vertex3dv(0.0, 0.2, 0.0) GL.Vertex3dv(0.0, 0.0, 1.0) #AD GL.Vertex3dv(0.0, 0.2, 0.0) GL.Vertex3dv(-1.0, 0.0, 0.0) #AC GL.Vertex3dv(0.0, 0.2, 0.0) GL.Vertex3dv(1.0, 0.0, 0.0) #BD GL.Vertex3dv(0.0, 0.0, 1.0) GL.Vertex3dv(-1.0, 0.0, 0.0) #BC GL.Vertex3dv(0.0, 0.0, 1.0) GL.Vertex3dv(1.0, 0.0, 0.0) #CD GL.Vertex3dv(1.0, 0.0, 0.0) GL.Vertex3dv(-1.0, 0.0, 0.0) #end GL.End(); } resize = proc {|w,h| GL.Viewport(0, 0, w, h); GL.LoadIdentity(); #GL.Ortho(-2.0, 2.0, -2.0, 2.0, -2.0, 2.0); GLU.Perspective(30.0, w / h, 1.0, 100.0) #GL.Translated(0.0, 0.0, 0.0) GLU.LookAt(3.0, 3.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) } timer = proc { GL.Rotate(2.0, 0.0, 1.0, 0.0) GLUT.PostRedisplay() GLUT.TimerFunc(100, timer, 0) } GLUT.Init() GLUT.CreateWindow("ruby-opengl test") GLUT.DisplayFunc(display) GLUT.ReshapeFunc(resize) GL.ClearColor(0.5,0.5,0.5,0.0) GLUT.TimerFunc(100, timer, 0) GLUT.MainLoop()}} #comment() このページへのアクセス数 total &counter() today &counter(today) yesterday &counter(yesterday) このページのタグ一覧 &tags_list()