![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opengl
文章平均质量分 73
zzz_zzzz_
这个作者很懒,什么都没留下…
展开
-
OpenGL的学习之路 -5
人眼看世界,有一个可见范围。范围内可见,范围外不可见。在OGL中,有两种投影方式,对应两种视景体。,矩阵A变化,太阳自转,地球跟着太阳转;透视投影(可见,从视觉效果上,透视投影更符合人眼),地球自转的同时绕着太阳公转,同时,太阳也在自转。2.几个代码示例(主要目的:弄明白 变换栈),矩阵C变化,地球实现自转的效果;‘D’或者‘d’以及‘Y’或者‘y’(4)月亮绕着地球转、地球绕着太阳转。(2)键盘控制的自转和公转。1.视景体 正交投影。(上图仅学习记录用)透视投影(替换代码)(1)三个球绕红球转。原创 2023-11-26 22:37:54 · 337 阅读 · 1 评论 -
OpenGL 的学习之路-4(变换)
9个参数,三个一组,前三个是相机的位置,中间三个是相机看向的方向,后三个是相机的top方向。这里,一开始,相机位于原点位置,相机看向z轴负半轴(也就是屏幕里),相机的top方向是y轴的正方向。拍摄受相机的影响,影响相机的三个因素:相机的位置、相机的指向、相机的top方向。如果把相机比作人的眼睛的话,眼睛的位置、眼睛看向哪里、头的歪头。所有的变换操作是放在一个栈中的,在施加一个新变化上,该语句的作用是向栈中压入一个I(单位阵),也就是现在还无变换。3.如果有多个变换的函数,先施行的是最下面的,然后往上进行。原创 2023-11-18 21:58:56 · 147 阅读 · 0 评论 -
OpenGL的学习之路-3
令点A代表骰子的点数为1、4,点B代表骰子的点数为2、5,点C代表骰子的点数为3、6。现在开始扔,如果扔的点数为1或者4,那么取AP的中点作为新的P;如果扔到的点数为3,6,则同理取CP的中点作为新的P。同时,要把每次取得的新的P绘制出来,并保持与相应的A或B或C同色。glBegin(GL_LINES_LOOP) :给出的两个相邻的点首尾相连,最后一个点和第一个点相连,构成环。点和点之间是配对的,如果给的点的个数是奇数,那么最后一个点没有找到和他配对的点,会不起作用。明明是随机的,却呈现了规律性。原创 2023-11-13 15:43:57 · 499 阅读 · 0 评论 -
OpenGL学习之路-2
引入bool量isShowSubWin0, isShowSubWin1, isShowSubWin2, isShowSubWin3来判断是否应该显示该子窗口。1.回调函数myMainWinReshape中:改变窗口大小时,先将原来子窗口销毁(如果存在的话),再重新产生新的子窗口。道理上是这个样子,但是我在实际运行过程中,拖动鼠标改变窗口大小时,出现了问题。差不多是说,没有注册给窗口6的回调函数。可能和我这个freeglut有关系的。8.多窗口且子窗口能够跟随reshape的变化而变化。原创 2023-11-13 09:04:16 · 70 阅读 · 0 评论 -
OpenGL学习之路
2.回调函数myMouse:四个参数,第一个int _button代表的是点击的是鼠标的哪个键(左键、中键、右键),int _state代表的是状态(按下DOWN、松开UP),int _x代表x坐标,int _y代表y坐标.2.glutCreateSubWindow(mainWin, 0, 0, 200, 200) : 子窗口,其主窗口为mainWin,位置(0,0),大小(200,200)按下F5之后,执行了 glutSpecialFunc(NULL),再按下其他的特殊键,也不会执行什么了。原创 2023-11-05 21:50:08 · 91 阅读 · 0 评论