主题:[原创]OpenGL入门学习——第六课
eastcowboy
[专家分:25370] 发布于 2006-10-08 18:38:00
趁着国庆这把火,再写一课吧。要不过两天,事情就又多起来了。
今后一段时间内我极有可能暂停更新,希望大家做好心理准备[em8]。学习是不能停止的,大家加油了。
下面回顾一下我们已经学习的课程:
[url=http://www.programfan.com/club/showbbs.asp?id=184355]第一课,编写第一个OpenGL程序[/url]
[url=http://www.programfan.com/club/showbbs.asp?id=184525]第二课,绘制几何图形[/url]
[url=http://www.programfan.com/club/showbbs.asp?id=184769]第三课,绘制几何图形的一些细节问题[/url]
[url=http://www.programfan.com/club/showbbs.asp?id=185032]第四课,颜色的选择[/url]
[url=http://www.programfan.com/club/showbbs.asp?id=196017]第五课,三维的空间变换[/url]
第六课,动画的制作 ——→ [color=0000FF]本次课程的内容[/color]
今天要讲的是动画制作——可能是各位都很喜欢的。除了讲授知识外,我们还会让昨天那个“太阳、地球和月亮”天体图画动起来。缓和一下枯燥的气氛。
=====================未完,请勿跟帖=====================
回复列表 (共40个回复)
31 楼
语心 [专家分:0] 发布于 2007-01-21 15:50:00
我想问一个第一课的问题,我按照楼住你说的做了"选择File->New->Project,然后选择Win32 Console Application,选择一个名字,然后按OK。
在谈出的对话框左边点Application Settings,找到Empty project并勾上,选择Finish。"
可是接下来"向该工程添加一个代码文件"在那里添加这个代码文件呢,楼住或达人能帮下吗???
多谢先
32 楼
语心 [专家分:0] 发布于 2007-01-21 16:06:00
另外如果有VS2005的入门书籍能推荐一下最好,这样简单问题就可以不麻烦楼住了
33 楼
2003aaaa [专家分:0] 发布于 2007-01-31 23:37:00
求救:这是用OpenGL做游戏时产生的一个问题,谁帮帮我啊
Linking...
LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:library
InputSystem.obj : error LNK2001: unresolved external symbol _IID_IDirectInput8A
34 楼
bioexplore [专家分:440] 发布于 2007-04-05 16:49:00
你好,我用你的方法,在没有加动画时可以显示图形,但是一旦加了
myIdle之后就什么都看不到了,没有动画阿,窗口里面都是黑的阿?
35 楼
lvgjuan [专家分:0] 发布于 2007-04-13 17:17:00
我也是什么都看不到[em18]
36 楼
eastcowboy [专家分:25370] 发布于 2007-04-13 23:38:00
即使是把教程中的完整代码复制过去编译也什么都看不到吗?请先参考第五课第24楼的内容,将所有关于坐标的值按比例进行缩小。如果还是无法显示,则卸载显卡驱动后再运行。
如果你所使用的代码是经过自己修改的,那么请贴出来,大家一起来看看有没有什么问题。
37 楼
euc [专家分:4310] 发布于 2007-05-31 10:03:00
感觉在实际中应该用glPushMatrix和pop代替glLoadIdentity
38 楼
bioexplore [专家分:440] 发布于 2008-08-03 22:12:00
我对代码进行了一些修改,使动画看起来更自然(速度变慢下来了)
只在myIdle中增加一个局部变量即可,修改后的myIdle如下:
void myIdle(void)
{
const int t=glutGet(GLUT_ELAPSED_TIME)/100.0;//要修改动画速度只要修改100.0这个常数
//新的函数,在空闲时调用,作用是把日期往后移动一天并重新绘制,达到动画效果
day=t;
if(day>=360)
{
day=day%360;
}
myDisplay();
}
大家可以试试看!
39 楼
dogfjjf1 [专家分:80] 发布于 2008-08-03 23:31:00
貌似c++直接用MFC简单了
40 楼
枫林座爱 [专家分:1610] 发布于 2008-09-17 22:41:00
也可以这样
//----------------------------
void myIdle(void)
{
++day;
if( day >= 360 )
day = 0;
myDisplay();
Sleep(40); // 加个头文件 #include <Windows.h>
}
//----------------------------
在我这效果还行,cpu不呼呼的响了
我来回复