opengl图形代码写完了,也编译成功了,为什么不显示图形?

 我来答
redfloyd
2012-11-26 · TA获得超过437个赞
知道小有建树答主
回答量:353
采纳率:0%
帮助的人:255万
展开全部
原因太多了…比如:初始化就没有设置好,相机的位置不对,视角没设置好,视景有问题,没有画东西,画了然后又擦除了。总之没代码没真相。
百度网友5bf305b03
2012-12-07 · 超过18用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:48.2万
展开全部
画到屏幕外了吧,试试在绘制前用 glTranslatef(0.0,0.0,-1.0f); 将场景往屏幕里一动一个单位
更多追问追答
追问
这个问题解决了,又出现了新问题,能不能帮帮我。。我是在文本类Doc.cpp里画的图像,然后再view.cpp里面写的控制它转动的代码。我现在想这些东西全部都在view.cpp里面完成,,请问能不能给点建议,我是初学者,c++   mfc 都没怎么学过,上来就搞mfc中的opengl,很多疑点。。而且在文本类里的gltranslatef()移动的话都是正常的单位。。。可是在视图类里面的gltranslatef()移动的单位毫无规律啊感觉。。
追答
好吧 首先你要知道opengl 通过 glTranslatef 生成了一个平移矩阵,执行这部之后所有的顶点坐标都会乘以这个矩阵,得到平移后的坐标。
那就是说glTranslatef会影响到它后面所有的绘制,要使它不影响都场景中其他无关的物体,就要保存变换前的矩阵,做完变换后,再还原矩阵。
code:
glPushMatrix(); // 将当前的变换矩阵入栈

glTranslatef(...); // 移动
glScalef(...); // 缩放
glRotatef(...); // 旋转
DrawSomething(); // 绘制需要受到影响的东西

glPopMatrix(); // 将当前矩阵设置为变换前的矩阵
DrawOthers(); // 绘制其他东西

主要逻辑顺序就是这样,理解理解吧。除非你两个类中改变了窗口大小,分辨率或者屏幕投影方式,否则执行 glTranslatef(...) 参数相同的话它的作用也相同的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
magic0f
2012-11-27 · 超过32用户采纳过TA的回答
知道答主
回答量:137
采纳率:0%
帮助的人:94.1万
展开全部
可能是画出屏幕外了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
panhongwei1031
2012-11-29
知道答主
回答量:2
采纳率:0%
帮助的人:3071
展开全部
刷新下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thlbt
2012-11-26
知道答主
回答量:35
采纳率:0%
帮助的人:22.4万
展开全部
是用glut的窗口画的吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式