快速业务通道

使用Eclipse RCP进行桌面程序开发(六):向OpenGL进军 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
enGL屏幕中心的坐标值是X和Y轴上的0.0f点。中心左面的 坐标值是负值,右面是正值。移向屏幕顶端是正值,移向屏幕底端是负值。移入屏幕深处是 负值,移出屏幕则是正值。

glTranslatef(x, y, z)是将当前点沿着X,Y和Z轴移动,当我们绘图的时候,不是相对于 屏幕中间,而是相对于当前点。

glBegin(GL.GL_TRIANGLES)的意思是开始绘制三角形,glEnd()告诉OpenGL三角形已经创 建好了。通常当我们需要画3个顶点时,可以使用GL_TRIANGLES。在绝大多数的显卡上,绘制 三角形是相当快速的。如果要画四个顶点,使用GL_QUADS的话会更方便。但据我所知,绝大 多数的显卡都使用三角形来为对象着色。最后,如果想要画更多的顶点时,可以使用 GL_POLYGON。

glVertex(x,y,z)用来设置顶点,如果绘制三角形,这些顶点需要三个一组,如果绘制四 边形,则是四个为一组。如果我们要为顶点着色,就需要glColor3f(r,g,b)方法,记住,每 次设置以后,这个颜色就是当前颜色,直到再次调用该方法重新设置为止。

聞喘Eclipse RCP序佩彑中殻會蝕窟?鎗???OpenGL序嘱(7)

扮寂:2011-04-13 今円牒牒

恷朔俶勣初府議頁glRotatef(Angle,Xvector,Yvector,Zvector)圭隈?乎圭隈減夭斑斤? 律汎峺協議已傴廬?Angle歌方峺廬強議叔業?廣吭頁検泣方填。

和中頁厘議篇夕窃議畠何旗鷹?厘委3D紙夕議販暦畠何慧欺阻総翌匯倖?殻嶄?旺拝協吶 阻匯倖弓拷圭隈public void drawPyramid(float x, float y, float z, int n)喘栖紙崙眉 曹弑裳專。泌和?

package cn.blogjava.youxia.views; import org.eclipse.opengl.GL; import org.eclipse.opengl.GLU; import org.eclipse.swt.events.ControlAdapter; import org.eclipse.swt.events.ControlEvent; import org.eclipse.swt.events.DisposeEvent; import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.opengl.GLData; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.part.ViewPart; import org.eclipse.swt.opengl.GLCanvas; import org.eclipse.swt.SWT; public class OpenGLView extends ViewPart {    GLCanvas canvas;    @Override    public void createPartControl(Composite parent) {      // TODO 徭強伏撹圭隈贋功      GLData data = new GLData();      data.depthSize = 1;      data.doubleBuffer = true;      canvas = new GLCanvas(parent, SWT.NO_BACKGROUND, data);      canvas.addControlListener(new ControlAdapter() {        public void controlResized(ControlEvent e) {          Rectangle rect = canvas.getClientArea();          GL.glViewport(0, 0, rect.width, rect.height);          //僉夲誘唹裳專          GL.glMatrixMode(GL.GL_PROJECTION);          //嶷崔誘唹裳專          GL.glLoadIdentity();          //譜崔完笥曳箭才邑篇夕          GLU.gluPerspective(45.0f, (float) rect.width / (float) rect.height, 0.1f, 100.0f);          //僉夲庁侏鉱賀裳專          GL.glMatrixMode(GL.GL_MODELVIEW);          //嶷崔庁侏鉱賀裳專          GL.glLoadIdentity();          //菜弼嘘尚          GL.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);          //譜崔侮業産贋          GL.glClearDepth(1.0f);          //尼強侮業霞編          GL.glEnable(GL.GL_DEPTH_TEST);        

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号