读书人

在Opengl中使用sin,cos函数的有关问题

发布时间: 2012-01-05 22:36:54 作者: rapoo

在Opengl中使用sin,cos函数的问题(原来的贴子沉了)
程序中sin,cos函数输出不正确
我把程序简化了,这样容易突出问题
程序如下:

#include <GL/glut.h>
#include <cmath>
#include <iostream>
using namespace std;

void myDisplay(void);
void test();
int main(int argc, char *argv[])
{
test();
glutInitWindowPosition(620,0);
glutInitWindowSize(400, 400);
glutCreateWindow( "第一个OpenGL程序 ");
test();
glutDisplayFunc(myDisplay);
glutMainLoop();

return 0;
}

void myDisplay(void)
{
}
void test()
{
float Testangle = -30.0 * 3.14159265 / 180.0;
cout < < "Sin = " < <sin(Testangle) < <endl
< < "Cos = " < <cos(Testangle) < <endl;
cout < < "_____________________________________________ " < <endl;
}

输出如下:
Sin = -0.5
Cos = 0.866025
_____________________________________________
Sin = -0.412707
Cos = 0.910864
_____________________________________________

请问为什么前后两次输出不一样? 谢谢。
我用的是vs2005, win32控制台应用程序.



[解决办法]
我的VC6.0执行完全正常....复制你的代码..
然后有实验了 VS2005 完全正常...

没有出现你的第2组值..
Sin = -0.5
Cos = 0.866025
Sin = -0.5
Cos = 0.866025

所以代码肯定是没问题的..
如果你仍然还出现这个问题的话..
想问下:
1.机器系统,内存.
2.glut.h glut32.h cmath 的版本日期...
[解决办法]
哦..
应该不会出问题的...
你的标题说是使用openGL 出的问题..看你的代码组织,想必你也测试过没加glut函数时的效果了..
那时候没问题吗? 那就应该和glut没关系咯..应该是个意外吧....开始时候在想会不会是浮点数精度的问题...

另外有个小建议:
我不知道你学openGL是因为什么,正好学图形学吗? 哦. 那就使用glut,这样也不会太深入而耽误时间. 如果专门学习openGL的话, 最好还是不用glut,glut是用来教学的..掩盖了许多你编程应该知道的... 直接使用win32API写的框架..以后想添加功能也很随心所欲. NeHe的教程很不错.可以百度下.学openGL最基本的教程.

读书人网 >VC/MFC

热点推荐