社区
图形处理/算法
帖子详情
opengl中的glrotatef
Mystica_tcl
2012-12-22 04:15:02
求助以下 具体的 glrotated (float ang,float x,float y,float z)所产生的4*4的矩阵长成什么样
...全文
186
1
打赏
收藏
opengl中的glrotatef
求助以下 具体的 glrotated (float ang,float x,float y,float z)所产生的4*4的矩阵长成什么样
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
whatabig
2013-01-03
打赏
举报
回复
|r00 r01 r02 0| |r10 r11 r02 0| |r20 r21 r22 0| |0 0 0 1|
open
gl
中
如何绕轴旋转物体
如何绕轴旋转这些物体。
gl
Rotate
f(An
gl
e,Xvector,Yvector,Zvector) 用于绕轴旋转物体, 这是一条十分有用的函数。 An
gl
e 是一个用于指定旋转角度的数字(通常存储于变量
中
)。 Xvector, Yvector 和 Zvector 这三个参数用于描述一条向量, 以规定物体的旋转轴。 如果你使用 (1,0,0) 这样的值, 你就描述了一条长度为1个单位的、顺着x轴指向右方的向量; 而 (-1,0,0) 这样的值就描述了一条长度为1个单位的、顺着x轴 但指向左方的向量。
Open
GL
实现3D模型旋转
Open
GL
实现ArcBall的三维模型旋转,VC工程,直接运行成功
Open
Gl
实验报告.doc
计算机图形学综合实验报告 烟台大学 计算机学院 软件工程专业 班 级: 计103-3 学 号: 201058503334 姓 名: 公茂华 指导教师: 孔繁茹 完成日期: 2012.11.10 综合试验:太阳系模型 1. 实验目的与要求 1、学习和掌握
Open
GL
的使用 2、掌握矩阵堆栈的实现方法 3、根据自己的创意实现实验内容,进一步掌握和理解
Open
GL
的使用 2. 实验内容 1、请编写地球围绕太阳自动旋转的方式 2、请再加上一个月亮, 并围绕地球旋转,并添加轨道 3、实现用户通过键盘或鼠标加入或减少行星和卫星 3. 实验结果 1. 开始运行 2. 增加地球和月亮(按键L或l)或其他任意行星及其若干卫星 3. 按照提示用鼠标和键盘增加或减少行星和卫星 转换视角: 4. 异常提示:要将Color.txt文件放到当前文件夹下 4. 体会 通过本次试验的实践,使我更加了解和初步掌握了
Open
GL
的用法,对使用
Open
Gl
绘制球体等图形有了充分认识,并对平移矩阵堆栈和旋转矩阵堆栈的使用有了初步的 掌握。虽然以前没有接触过
Open
Gl
,但是通过学习计算机图形学这门课程的知识,以 及通过多次上机实验,已使我对
Open
GL
有了一定了解,不过具体使用和其它方面还需 要进一步理解和学习。最后,感谢老师的悉心指导。 5. 源程序 注:红色注释为新加 #include
#include <
gl
/
gl
ut.h> #include
#include
#include
static float fE = 0.0f; //绕太阳或行星旋转的角度 static int i=0, j=0, m; //for循环计数 static
GL
int x=7, y=3; //转换视角,以太阳为
中
心 static int a[8]; //计数第几颗行星的卫星的数量 static bool lag = false; //键盘L(l)增加行星的标志,true为增加 int k[8][3]; //读取文件数据 FILE *fp; void Initial() {
gl
Enable(
GL
_DEPTH_TEST); //启用深度测试
gl
ClearColor(0.0, 0.0, 0.0, 0.0);//设置背景颜色 } void Change(int w, int h) {
gl
Viewport(0, 0, (
GL
sizei) w, (
GL
sizei) h);//设置视区尺寸
gl
MatrixMode(
GL
_PROJECTION); //指定当前操作投影矩阵堆栈
gl
LoadIdentity(); //重置投影矩阵
GL
float fAspect; fAspect = (float)w/(float)h;
gl
uPerspective(45, fAspect, 1.0, 600.0);//设置透视投影矩阵
gl
MatrixMode(
GL
_MODELVIEW);
gl
LoadIdentity(); } void Satellite() //增加卫星 { for (int n=0; n< a[i]; n++) {
gl
PushMatrix();
gl
Rotate
f(30.0f+6*n, 0.0f, 0.0f, 1.0f); //绕z轴旋转30度
gl
Rotate
f(fE*10*(3*n+1), 0.0f, 1.0f, 0.0f); //公转速度fE*10*(3*n+1)
gl
Translated(-5.0f*m, 1.0f, 0.0f);
gl
Color3f(256.0f, 256.0f, 0.0f);
gl
utWireSphere(1.0f, 20, 20); //卫星
gl
Color3f(0.0f, 0.0f, 0.0f);
gl
PopMatrix(); } } void Planet() //增加行星 { if (lag==true) //键盘L(l)增加行星 i=j-1; else i=0; for (;i
glPushMatrix(); //保存当前的模型视图矩阵
gl
Color3f(0,0,9);
gl
utWireTorus(20.0f*(i+1), 0, 100, 1); //轨道
gl
Rotate
f(fE*(9-i), 0.0f, 1.0f, 0.0f); //绕y轴旋转一定的角度
gl
Translated(20.0f*(i+1), 0.0f, 0.0f); //平移一段距离
gl
Color3f(k[i][0], k[i][1], k[i][2]
open
gl
/c++贪吃蛇.rar
VS工程奉上,运行逻辑应该无问题,用六面体代表贪吃蛇的身体,绘制用一个数组保存所有的顶点,用一个数组保存顶点的序号。但最后绘制的时候,不是编写循环语句逐个的指定顶点了,而是通知
Open
GL
,”保存顶点的数组”和”保存顶点序号的数组”所在的位置,由
Open
GL
自动的找到顶点,并进行绘制。但是没有调
gl
uLookAt和
gl
Rotate
f,运行起来是二维的。c++和
open
gl
都是初学,请大家指正。
open
gl
3d文字
gl
Clear(
GL
_COLOR_BUFFER_BIT |
GL
_DEPTH_BUFFER_BIT);
gl
LoadIdentity();
gl
Translatef(.0f, .0f, -10.0f);
gl
Rotate
f(rot,1.0f,0.0f,0.0f); //
Rotate
On The X Axis
gl
Rotate
f(rot*1.5f,0.0f,1.0f,0.0f); //
Rotate
On The Y Axis
gl
Rotate
f(rot*1.4f,0.0f,0.0f,1.0f);
gl
Color3f(1.0f * (float)cos(rot / 20.0f), 1.0f * (float)sin(rot / 25.0f), 1.0f - .5f * (float)cos(rot / 17.0f));
gl
Print("Active
open
gl
outline f 是ont text with NeHe - %7.2f", rot / 50);
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章