Ruby 使用 OpenGL 的例子
发布时间:2020-12-17 04:12:43 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 require "opengl"require "glut"$light_diffuse = [1.0,0.7,1.0]$light_position = [1.0,1.0,0.0]$n = [ [-1.0,0.0,0.0],[0.2,[1.0,[0.0,-1.0,0.3,1.0
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 require "opengl" require "glut" $light_diffuse = [1.0,0.7,1.0] $light_position = [1.0,1.0,0.0] $n = [ [-1.0,0.0,0.0],[0.2,[1.0,[0.0,-1.0,0.3,1.0],-1.0] ] $faces = [ [0,1,2,3],[3,6,2],[7,5,4],[4,[5,1],4,3] ] def drawBox for i in (0..5) GL.Begin(GL::QUADS) GL.Normal(*($n[i])) GL.Vertex($v[$faces[i][0]]) GL.Vertex($v[$faces[i][1]]) GL.Vertex($v[$faces[i][2]]) GL.Vertex($v[$faces[i][3]]) GL.End() end end display = Proc.new { GL.Clear(GL::COLOR_BUFFER_BIT | GL::DEPTH_BUFFER_BIT) drawBox GLUT.SwapBuffers } def myinit $v = [[-1,-1,[-1,-1],[1,1]] GL.Light(GL::LIGHT0,GL::DIFFUSE,$light_diffuse) GL.Light(GL::LIGHT0,GL::POSITION,$light_position) GL.Enable(GL::LIGHT0) GL.Enable(GL::LIGHTING) GL.Enable(GL::DEPTH_TEST) GL.MatrixMode(GL::PROJECTION) GLU.Perspective(40.0,10.0) GL.MatrixMode(GL::MODELVIEW) GLU.LookAt(0.0,5.0,0.0) GL.Translate(0.0,-1.0) GL.Rotate(60,0.0) GL.Rotate(-20,1.0) end GLUT.Init GLUT.InitDisplayMode(GLUT::DOUBLE | GLUT::RGB | GLUT::DEPTH) GLUT.CreateWindow("red 3D lighted cube") GLUT.DisplayFunc(display) myinit GLUT.MainLoop() 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |