怎么解决OpenGL重绘和重排

请教用opengl es 如何实现圆柱体局部刷新重绘???
用opengl es2.0绘制一个圆柱体,比如长度为100,半径为20(已经绘制好)
动画效果:此圆柱体,我是水平放置的,
我想实现从圆柱体右端开始半径渐渐变小,比如说,在长度100处,直径变为18,接着在长度99处也变为18,这样一直下去,直到50处也变为18.然后从右端重新开始减小半径,比如变为16,重复前面那个过程向左推进。就像有个刀在切削一样。
请教一下这样的效果如何实现?> 3ds模型在OpenGL中的读取和重绘.对OpenGL做了基本的介绍3ds模型在OpenGL中的读取和重绘.对OpenGL做了基本的介绍已有 434386个资源相关资源下载专区上传者其他资源其它热门资源本周本月全部文档信息资源大小:290.27KB上 传 者: () 上传日期:资源类型:应用文档资源积分:1分评
论:下载次数:1参与讨论:标&&&&签:分&&&&享:文档简介3ds模型在OpenGL中的读取和重绘.对OpenGL做了基本的介绍,并详细介绍了3ds模型的文件格式文件列表.BMP----|000005.BMP----|000010.BMP----|000024.BMP----|000025.BMP----|000027.BMP----|000039.BMP----|000059.BMP----|000068.BMP----|000074.BMP----|000078.BMP----|000092.BMP----|000108.BMP----|000109.BMP----|000113.BMP----|000122.BMP----|Thumbs.db.NET Compact Framework .dep----|PWM.o.d----|display.o.d----|ds1302.o.d----|ds18b20.o.d----|key.o.d----|lcd_lib.o.d----|main.o.d----|twi_i2c.o.d.deps----|ControlResource.Po----|DCU99Editor.Po----|DuplexEditor.Po.eclipseme.tmp----|emulation----|----|PhoneBook.jad----|----|PhoneBook.jarverified----|classes----|----|com----|----|----|north----|----|----|----|phonebook----|----|----|----|----|model----|----|----|----|----|----|Account.class----|----|----|----|----|----|ApplicationException.class----|----|----|----|----|----|Index.class----|----|----|----|----|----|Model$AccountFilter.class----|----|----|----|----|----|Model$IndexFilter.class----|----|----|----|----|----|Model.class----|----|----|----|----|----|Preference.class----|----|----|----|----|----|UserModel.classui----|ConfirmationDialog.class----|DetailInfoUI.class----|Dialog.class----|DialogListener.class----|IndexFunctionUI$ListIndex.class----|IndexFunctionUI.class----|ListMerchantGroupUI.class----|ListPhoneUI.class----|LoginUI.class----|MerchantGroupDetailInfoUI.class----|NewPhoneUI.class----|SearchPhoneUI.class----|Title.class----|UIController$1.class----|UIController$EventID.class----|UIController.class----|WaitCanvas$1.class----|WaitCanvas.class----|WelcomeUI.classPhoneBookMIDlet.class.kde----|share----|----|apps----|----|----|RecentDocuments----|----|----|----|host24.kdevprj.desktop.kdevelop-doc.metadata----|.plugins----|----|org.eclipse.core.resources----|----|----|.projects----|----|----|----|Nios II Device Drivers----|----|----|----|----|.location----|----|----|----|----|.propertieshello_led_0----|.markers----|.propertieshello_led_0_syslib----|.markers----|.properties.root----|112.tree.safetable----|org.eclipse.core.resourcesorg.eclipse.core.runtime----|.settings----|----|org.eclipse.cdt.core.prefs----|----|org.eclipse.cdt.ui.prefs----|----|org.eclipse.ui.prefsorg.eclipse.ui.workbench----|dialog_settings.xml----|workbench.xml.bak_0.log.bak_1.log.bak_2.log.bak_3.log.lock.logversion.ini.myeclipse----|CVS----|----|Repository----|----|Root.netGA----|TSPGA----|----|TSPGA----|----|----|Properties----|----|----|----|AssemblyInfo.cs----|----|----|----|Resources.Designer.cs----|----|----|----|Resources.resx----|----|----|----|Settings.Designer.cs----|----|----|----|Settings.settingsbin----|DebugReleaseobj----|DebugReleaseTSPGA.csproj.FileListAbsolute.txtForm1.Designer.csForm1.csForm1.resxProgram.csTSPGA.csprojWorld.csZVisitRoute.csTSPGA.slnTSPGA.suo.netkuangjia.settings----|CVS----|----|Entries----|----|Repository----|----|Rootorg.eclipse.core.resources.prefs.sopc_builder----|install.ptf.svn----|prop-basepropstext-base----|readme.txt.svn-basetmp----|prop-basepropstext-baseall-wcpropsdir-prop-baseentriesformat.tmp_versions----|dw4002.mod.vim.xvpics----|plot.jpg. Online calibration of Nyquist-rate analog-to-digital converters.pdf..dir.dat.DS_Store.NET Compact Framework mpact Framework ._.DS_Store._CotEditor_346._INSTALL._MacOS_Setup._PortVaR._vtoolbox.actionScriptProperties.advancedproject.apriori_config.apusicproject.ccsproject.checkstyle.classpath.config.o.flags.cproject.cvsignore.cxl.dep\LIS302.o.d.dep\main.o.d.dep\spi0.o.d.depend.dw4002.ko.cmd.dw4002.mod.o.cmd.dw4002.o.cmd.dwg.eclipseme.epautoconf.o.flags.exe.file_storage.o.flags.flexProperties.gitignore.hg_archival.txt.htaccess.indent.pro.lso.message.oca.pdf.project.qmake.internal.cache.reg文件全攻略.txt.screenrc.synopsys_dc.setup.synopsys_pt.setup.untf.usbstring.o.flags.vimrc.xhdl3.xrefReadandRedrawof3dsModelsinOpenGL.pdf相关帖子大学堂最新课程请选择理由 辱骂 色情 广告提交若举报审核通过,可奖励2下载分举报人:被举报人:mamselc举报的资源分:1* 类型:请选择类型资源无法下载资源分类不正确资源无法使用标题与实际内容不符含有危害国家安全内容含有反动色情等内容含广告内容版权问题,侵犯个人或公司的版权其他* 详细原因:回到顶部EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱service(.cn 或通过站内短信息或QQ:联系管理员okhxyyo,我们会尽快处理。OpenGL Glut剖析(3)--重绘回调函数的使用
OpenGL Glut剖析(3)--重绘回调函数的使用
编辑:www.fx114.net
本篇文章主要介绍了"OpenGL Glut剖析(3)--重绘回调函数的使用",主要涉及到OpenGL Glut剖析(3)--重绘回调函数的使用方面的内容,对于OpenGL Glut剖析(3)--重绘回调函数的使用感兴趣的同学可以参考一下。
OpenGL Glut剖析(3)--重绘回调函数的使用&&
22:29:11|&&分类:&&字号&
&结果分析:默认的glViewport(0, 0, 400, 400)的纵横比 width:height = 1:1而此处设置的纵横比为1:2,因此显示结果是width压缩了1/2。注意纵横比1:2中较大的2对应了平行视景体中物体的实际尺寸。
2) glViewport中的纵横比为2:1,时对显示结果的影响
#include &gl/glut.h&void display(void){&&&& glClearColor(0.0,0.0,0.0,0.0);&&&& glClear(GL_COLOR_BUFFER_BIT);
&&&& glColor4f(1.0,1.0,1.0,1.0);& glRectf(0.25,0.25,0.75,0.75);
&&&& glFlush();}
void init(void){&&&& glClearColor(0.0, 0.0, 0.0, 0.0);&&&& glShadeModel(GL_FLAT);&&&}
void reshape(int w, int h){&glMatrixMode(GL_PROJECTION);&&glLoadIdentity();&&gluOrtho2D(0, 1, 0, 1);&glViewport(0,0,400,200); // the height of view port is half of the window size&&//glViewport(0, 0, (GLsizei) w, (GLsizei) h); // resizing according
to dragging}
&int main(int argc, char** argv){&glutInit(&argc, argv);&glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);&glutInitWindowPosition(150, 150);&glutInitWindowSize(400, 400);&glutCreateWindow(&glViewport(0,0,400,200)&);&init();&glutDisplayFunc(display);&glutReshapeFunc(reshape);&glutMainLoop();&return
(四)Window size的变化对显示结果的影响。
Window size对显示结果的影响是不好对其进行修正的,所以选择合适的窗口尺寸对于图形显示来说很重要
#include &gl/glut.h&void display(void){&&&& glClearColor(0.0,0.0,0.0,0.0);&&&& glClear(GL_COLOR_BUFFER_BIT);
&&&& glColor4f(1.0,1.0,1.0,1.0); //注意没有显式的转到ModelView模式&&&& glRectf(0.25,0.25,0.75,0.75);
&&&& glFlush();}
void init(void){&&&& glClearColor(0.0, 0.0, 0.0, 0.0);&&&& glShadeModel(GL_FLAT);&&&}
void reshape(int w, int h){&glMatrixMode(GL_PROJECTION);&&glLoadIdentity();&&gluOrtho2D(0, 1, 0, 1);&//glViewport(0,0,400,200);&this&setting&is not a good solution to the imaging distortion&//glViewport(0, 0, 200,
400); // the default view port size is the same as the window size,uncommenting this line makes no difference to the displaying result.}
int main(int argc, char** argv){&glutInit(&argc, argv);&glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);&glutInitWindowPosition(150, 150);&glutInitWindowSize(200, 400);&glutCreateWindow(&Window Size (200, 400)&);&init();&glutDisplayFunc(display);&glutReshapeFunc(reshape);&glutMainLoop();&return
#include &gl/glut.h&
// 函数RenderScene用于在窗口中绘制需要的图形
void RenderScene(void)
//用当前清除色清除颜色缓冲区,即设定窗口的背景色
glClear(GL_COLOR_BUFFER_BIT);
//设置当前绘图使用的RGB颜色
glColor3f(1.0f, 0.0f, 0.0f);
//使用当前颜色绘制一个填充的矩形
glRectf(100.0f, 150.0f, 150.0f, 100.0f);
//刷新OpenGL命令队列
glFlush();
// 函数ChangeSize是窗口大小改变时调用的登记函数
void ChangeSize(GLsizei w, GLsizei h)
if(h == 0) h = 1;
//设置视区尺寸
glViewport(0, 0, w, h);
// 重置坐标系统,使投影变换复位
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// 建立修剪空间的范围
if (w &= h)
glOrtho (0.0f, 250.0f, 0.0f, 250.0f*h/w, 1.0f, -1.0f);
glOrtho (0.0f, 250.0f*w/h, 0.0f, 250.0f, 1.0f, -1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//函数SetupRC用于初始化,常用来设置场景渲染状态
void init(void)
// 设置窗口的清除色为白色
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
void main(void)
//初始化GLUT库OpenGL窗口的显示模式
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
// 创建一个名为GLRect的窗口
glutCreateWindow(&GLRect&);
// 设置当前窗口的显示回调函数和窗口再整形回调函数
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
//启动主GLUT事件处理循环
glutMainLoop();
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:}

我要回帖

更多关于 重绘和重排 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信