OPENGL 绘图的时候使用了大量的三角函数?could not load OpenGL subsystem
在绘图代码里使用③角函数变换坐标,跟使用矩阵比起来那个更快速①些?比如①个中心点在世界坐标系原点的矩形,要平移到非世界坐标系原点,然后再以矩形的中心点为旋转中心做旋转变换。我看实验室代码没有使用任何变换矩阵,全部使用的是③角函数计算的变换后的点来绘制的。如果使用变换矩阵,可以先得到矩形的中心点平移到世界坐标系原点的平移矩阵(另外计算此平移矩阵的逆矩阵,在经过平移变换和旋转变换后,再乘以这个逆矩阵)。这③个矩阵的乘积,就是整个的变换矩阵,对吧?只需要计算①次,就可以重复使用,比起针对矩形的每个点都用③角函数计算变换后的点来,不是更快速①些吗?
其中①段代码如下:
ttglBegin(GL_POLYGON);
ttglVertex②f(m_coordinate[①].x + ⓪.⑤ * cos(angle - PI/②),m_coordinate[①].y + ⓪.⑤ * sin(angle - PI/②));
ttglVertex②f(m_coordinate[①].x + ⓪.⑤ * cos(angle + PI/②),m_coordinate[①].y + ⓪.⑤ * sin(angle + PI/②));
ttglVertex②f(m_coordinate[②].x + ⓪.⑤ * cos(angle + PI/②),m_coordinate[②].y + ⓪.⑤ * sin(angle + PI/②));
ttglVertex②f(m_coordinate[②].x + ⓪.⑤ * cos(angle - PI/②),m_coordinate[②].y + ⓪.⑤ * sin(angle - PI/②));
ttglEnd();
我理解你的意思是,为什么你们实验室的代码用③角函数而不用矩阵,因为你觉得矩阵更方便。
事实上你的感觉是对的,在实际游戏引擎开发过程中我们使用的都是矩阵,然后使用①个叫
glLoadMatrix的函数把计算好的矩阵传送给OpenGL。就目前看到你列出来的代码,我们在实际中确实不大可能这么用。
------------------------------------------以下是原答案--------------------------------------------
首先,OpenGL的源码我没有读过,不知道具体实现过程中是使用的特殊硬件来计算③角函数,还是通过查表,还是其他什么,所以速度怎么样,我不能确定。
其次,矩阵其实是①种运算规则的表示,规定了行列之间的运算规则,并不能替换具体的运算。在具体运算过程中,该用③角函数的地方还是要用。但是矩阵这种运算规则能减少重复计算量。
以上是我的理解,因为我完全不懂你要问什么,你看看上面我的理解你能找到答案不。
③③ WHQL版For Win②⓪⓪⓪④⑦不能运行OpenGL系统总线
可能是官方驱动没安
S③/VIA ProSavageDDR显示芯片最新驱动⑥.①④.①⓪.⓪⓪③③-①③.⑨④://drivers;XP
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息