资源简介
通过opengl绘制三维模型,通过鼠标控制可以旋转模型,vs2010编写。
代码片段和文件信息
/** KempoApi: The Turloc Toolkit *****************************/
/** * * **/
/** ** ** Filename: ArcBall.cpp **/
/** ** Version: Common **/
/** ** **/
/** **/
/** Arcball class for mouse manipulation. **/
/** **/
/** **/
/** **/
/** **/
/** (C) 1999-2003 Tatewake.com **/
/** History: **/
/** 08/17/2003 - (TJG) - Creation **/
/** 09/23/2003 - (TJG) - Bug fix and optimization **/
/** 09/25/2003 - (TJG) - Version for NeHe basecode users **/
/** **/
/*************************************************************/
#include // Header File For Windows
#include // Header File For The OpenGL32 Library
#include // Header File For The GLu32 Library
#include // Header File For The GLaux Library
#include “math.h“ // Needed for sqrtf
#include “ArcBall.h“ // ArcBall header
//Arcball sphere constants:
//Diameter is 2.0f
//Radius is 1.0f
//Radius squared is 1.0f
void ArcBall_t::_mapToSphere(const Point2fT* NewPt Vector3fT* NewVec) const
{
Point2fT TempPt;
GLfloat length;
//Copy paramter into temp point
TempPt = *NewPt;
//Adjust point coords and scale down to range of [-1 ... 1]
TempPt.s.X = (TempPt.s.X * this->AdjustWidth) - 1.0f;
TempPt.s.Y = 1.0f - (TempPt.s.Y * this->AdjustHeight);
//Compute the square of the length of the vector to the point from the center
length = (TempPt.s.X * TempPt.s.X) + (TempPt.s.Y * TempPt.s.Y);
//If the point is mapped outside of the sphere... (length > radius squared)
if (length > 1.0f)
{
GLfloat norm;
//Compute a normalizing factor (radius / sqrt(length))
norm = 1.0f / FuncSqrt(length);
//Return the “normalized“ vector a point on the sphere
NewVec->s.X = TempPt.s.X * norm;
NewVec->s.Y = TempPt.s.Y * norm;
NewVec->s.Z = 0.0f;
}
else //Else it‘s on the inside
{
//Return a vector to a point mapped inside the sphere sqrt(radius squared - length)
NewVec->s.X = TempPt.s.X;
NewVec->s.Y = TempPt.s.Y;
NewVec->s.Z = FuncSqrt(1.0f - length);
}
}
//Create/Destroy
ArcBall_t::ArcB
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-01-24 19:49 17210110OpenGL_Mouse_rotate_physical\
目录 0 2015-01-24 21:56 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\
文件 4708 2003-09-25 04:12 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\ArcBall.cpp
文件 18012 2003-09-25 05:02 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\ArcBall.h
目录 0 2015-01-25 16:17 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\Backup\
目录 0 2015-01-24 20:26 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\Debug\
文件 20210 2012-10-30 15:49 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\Debug\ArcBall.obj
文件 0 2012-10-30 15:49 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\Debug\ArcBall.sbr
文件 28744 2012-10-31 22:06 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\Debug\Mouse_rotate_physical.obj
文件 0 2012-10-31 22:06 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\Debug\Mouse_rotate_physical.sbr
文件 2507776 2012-10-31 22:06 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\Debug\OpenGL鼠标旋转物体.bsc
文件 217207 2012-10-31 22:06 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\Debug\OpenGL鼠标旋转物体.exe
文件 257168 2012-10-31 22:06 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\Debug\OpenGL鼠标旋转物体.ilk
文件 156672 2012-10-31 22:06 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\Debug\vc60.idb
文件 77824 2012-10-31 22:06 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\Debug\vc60.pdb
文件 7432 2012-10-31 22:06 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\Mouse_rotate_physical.cpp
文件 4631 2012-10-30 16:02 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\OpenGL鼠标旋转物体.dsp
文件 544 2012-10-30 15:44 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\OpenGL鼠标旋转物体.dsw
文件 58368 2012-10-31 22:08 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\OpenGL鼠标旋转物体.ncb
文件 55808 2012-10-31 22:08 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\OpenGL鼠标旋转物体.opt
文件 1166 2012-10-31 22:06 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\OpenGL鼠标旋转物体.plg
文件 29163520 2015-01-24 21:56 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\OpenGL鼠标旋转物体.sdf
文件 993 2015-01-24 20:26 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\OpenGL鼠标旋转物体.sln
文件 15360 2015-01-24 21:56 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\OpenGL鼠标旋转物体.v12.suo
文件 6657 2015-01-24 20:26 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\OpenGL鼠标旋转物体.vcxproj
文件 1208 2015-01-24 20:26 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\OpenGL鼠标旋转物体.vcxproj.filters
文件 34508 2015-01-24 20:26 17210110OpenGL_Mouse_rotate_physical\OpenGL鼠标旋转物体及剪切平面\UpgradeLog.htm
- 上一篇:锁相环程序代码
- 下一篇:搅拌摩擦焊温度场模拟
相关资源
- opengl三维场景
- 计算机图形学opengl+shader几个
- opengl简单地形绘制
- OPENGL三维场景搭建、漫游、交互_vs2
- 基于体渲染的OpenGL烟雾模拟程序
- OSGB模型3MX索引生成工具v0.1.exe
- openGL下雨现象模拟
- OpenGL三维图形程序设计(Windows版)
- OpenGL实现鼠标旋转缩放平移操作
- Instagram Filters 破解了Instagram App的几十
- opengl 3d obj模型加载,贴图
- 实时计算机图形学 第二版英文版pdf格
- OpenGL实践三:水面涟漪的逼真绘制毕
- Opengl实现的Ray Casting 光线投射算法
- 天空盒(opengl)
- opengl图形学实验七 不同的光照渲染
- OpenGL-Nehe完整中文教程和全部源代码
- 扫描线填充算法的OpenGL实现
- OpenGL soil库与布置方法,位置
- 基于opengl的杯子模型
- opengl 红宝书 计算机图形学红宝书 图
- 倾斜影像自动空三及其在城市真三维
- 一套基于QT、GDAL、OpenGL的遥感影像显
- OpenGL 画荷花
- OpenGL安装包+安装指导Windows平台
- freeglut,包括.dll、.h和.lib文件,完美
- OpenGL的虚拟校园漫游系统的设计与实
- 基于OpenGL的Loop网格细分
- OPenGL地层时适渲染LOD
- OpenGL使用画家算法实现隐藏面的消除
评论
共有 条评论