资源简介
Qt Creator+opengl实现鼠标交互,控制模型任意旋转,实现轨迹球,
里面的void Widget::drawarrow(GLdouble x0, GLdouble y0, GLdouble z0, GLdouble x1, GLdouble y1, GLdouble z1)这个函数实现,空间任意两点绘制箭头的。
代码片段和文件信息
#include
#include “ArcBall.h“
//轨迹球参数:
//直径 2.0f
//半径 1.0f
//半径平方 1.0f
void ArcBall_t::_mapToSphere(const Point2fT* NewPt Vector3fT* NewVec) const
{
Point2fT TempPt;
GLfloat length;
//复制到临时变量
TempPt = *NewPt;
//把长宽调整到[-1 ... 1]区间
TempPt.s.X = (TempPt.s.X * this->AdjustWidth) - 1.0f;
TempPt.s.Y = 1.0f - (TempPt.s.Y * this->AdjustHeight);
//计算长度的平方
length = (TempPt.s.X * TempPt.s.X) + (TempPt.s.Y * TempPt.s.Y);
//如果点映射到球的外面
if (length > 1.0f)
{
GLfloat norm;
//缩放到球上
norm = 1.0f / FuncSqrt(length);
//设置z坐标为0
NewVec->s.X = TempPt.s.X * norm;
NewVec->s.Y = TempPt.s.Y * norm;
NewVec->s.Z =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4299 2014-03-13 11:14 guijiqiu\ArcBall.cpp
文件 12735 2014-03-13 11:08 guijiqiu\ArcBall.h
文件 387 2014-03-12 22:24 guijiqiu\guijiqiu.pro
文件 17903 2014-03-14 10:46 guijiqiu\guijiqiu.pro.user
文件 175 2014-03-12 22:22 guijiqiu\main.cpp
文件 6100 2014-03-14 10:46 guijiqiu\widget.cpp
文件 6062 2014-03-14 15:05 guijiqiu\widget.cpp.autosave
文件 546 2014-03-13 09:49 guijiqiu\widget.h
目录 0 2014-03-14 15:05 guijiqiu
----------- --------- ---------- ----- ----
48207 9
- 上一篇:delphi7微信扫码支付模式二统一下单
- 下一篇:CT图像生成STL文件的程序
相关资源
- 基于四元数的Chern–Simons理论在任
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
- OpenGL实现飘动效果
- opengl室内场景的绘制,包括碰撞检测
- OpenGL场景漫游
- 用opengl实现的太阳系模型
- OpenGL 3D贪吃蛇程序,很小
- OpenGL爆炸碎片化效果 源码
- OpenGL三茶壶三光源光源绕着茶壶旋转
- 10个OpenGL的源码
- vc写的一个游戏里面三维场景漫游
- OpenGL实现的简单游戏引擎
- OpenGL游戏程序设计源码
- glew最新版本glew1.11.0
- OpenGL 火箭
- 天空盒和地面
- 三维场景漫游.zip
- openGL实现的正方体六面贴图
- opengl简易翻牌游戏
评论
共有 条评论