91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 11.06MB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2023-07-12
  • 語言: 其他
  • 標簽: opengl??arcball??

資源簡介

opengl讀取.obj三維模型(可自己創建放入.obj文件夾中),arcball實現鼠標點擊實現模型變換,及鍵盤控制放大縮小。

資源截圖

代碼片段和文件信息

//#include?“stdafx.h“
#define?GLUT_DISABLE_ATEXIT_HACK?
#include?????????
#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?=?0.0f;
}
//如果在球內
else
{
//利用半徑的平方為1求出z坐標
NewVec->s.X?=?TempPt.s.X;
NewVec->s.Y?=?TempPt.s.Y;
NewVec->s.Z?=?FuncSqrt(1.0f?-?length);
}
}

ArcBall_t::ArcBall_t(GLfloat?NewWidth?GLfloat?NewHeight)
{
this->StVec.s.X?=?0.0f;
this->StVec.s.Y?=?0.0f;
this->StVec.s.Z?=?0.0f;

this->EnVec.s.X?=?0.0f;
this->EnVec.s.Y?=?0.0f;
this->EnVec.s.Z?=?0.0f;


Matrix4fSetIdentity(&Transform);
Matrix3fSetIdentity(&LastRot);
Matrix3fSetIdentity(&ThisRot);

this->isDragging?=?false;
this->isClicked?=?false;
this->isRClicked?=?false;
this->isZooming?=?false;
this->zoomRate?=?1;
this->setBounds(NewWidth?NewHeight);
}

void?ArcBall_t::upstate()
{
if?(!this->isZooming?&&?this->isRClicked)?{????????????????????//?開始拖動
this->isZooming?=?true;????????????????????????????????????????//?設置拖動為變量為true????????
this->LastPt?=?this->MousePt;
this->lastZoomRate?=?this->zoomRate;
}
else?if?(this->isZooming)?{//正在拖動
if?(this->isRClicked)?{????????????????//拖動????????
Point2fSub(&this->MousePt?&this->LastPt);
this->zoomRate?=?this->lastZoomRate?+?this->MousePt.s.X?*?this->AdjustWidth?*?2;
}
else?{????????????????????????????????????????????//停止拖動
this->isZooming?=?false;
}
}
else?if?(!this->isDragging?&&?this->isClicked)?{???????????????????????????????????????????????//?如果沒有拖動
this->isDragging?=?true;????????????????????????????????????????//?設置拖動為變量為true
this->LastRot?=?this->ThisRot;
this->click(&this->MousePt);
}
else?if?(this->isDragging)?{
if?(this->isClicked)?{????????????????????????????????????????????//如果按住拖動
Quat4fT?????ThisQuat;

this->drag(&this->MousePt?&ThisQuat);????????????????????????//?更新軌跡球的變量
Matrix3fSetRotationFromQuat4f(&this->ThisRot?&ThisQuat);???????//?計算旋轉量
Matrix3fMulMatrix3f(&this->ThisRot?&this->LastRot);
Matrix4fSetRotationFromMatrix3f(&this->Transform?&this->ThisRot);
}
else????????????????????????????????????????????????????????//?如果放開鼠標,設置拖動為false
this->isDragging?=?false;
}
}

//按下鼠標記錄當前對應的軌跡球的位置
void????ArcBall_t::click(co

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

????..A..H.?????27648??2018-03-29?14:12??MyArcball\.vs\MyArcball\v14\.suo

?????文件?????230912??2018-03-29?14:11??MyArcball\Debug\MyArcball.exe

?????文件?????943380??2018-03-29?14:11??MyArcball\Debug\MyArcball.ilk

?????文件????1560576??2018-03-29?14:11??MyArcball\Debug\MyArcball.pdb

?????文件???????3901??2018-03-28?23:25??MyArcball\MyArcball\Arcball.cpp

?????文件??????11211??2018-03-28?15:41??MyArcball\MyArcball\ArcBall.h

?????文件??????34441??2018-03-29?14:07??MyArcball\MyArcball\Debug\Arcball.obj

?????文件?????823261??2018-03-29?14:07??MyArcball\MyArcball\Debug\loadmodel.obj

?????文件???????1011??2018-03-29?14:12??MyArcball\MyArcball\Debug\MyArcball.log

?????文件?????249722??2018-03-29?14:12??MyArcball\MyArcball\Debug\MyArcball.obj

?????文件???????2070??2018-03-29?14:12??MyArcball\MyArcball\Debug\MyArcball.tlog\CL.command.1.tlog

?????文件??????55458??2018-03-29?14:12??MyArcball\MyArcball\Debug\MyArcball.tlog\CL.read.1.tlog

?????文件???????1596??2018-03-29?14:12??MyArcball\MyArcball\Debug\MyArcball.tlog\CL.write.1.tlog

?????文件???????1920??2018-03-29?14:11??MyArcball\MyArcball\Debug\MyArcball.tlog\link.command.1.tlog

?????文件???????4572??2018-03-29?14:11??MyArcball\MyArcball\Debug\MyArcball.tlog\link.read.1.tlog

?????文件????????776??2018-03-29?14:11??MyArcball\MyArcball\Debug\MyArcball.tlog\link.write.1.tlog

?????文件????????205??2018-03-29?14:11??MyArcball\MyArcball\Debug\MyArcball.tlog\MyArcball.lastbuildstate

?????文件?????863232??2018-03-29?14:12??MyArcball\MyArcball\Debug\vc140.idb

?????文件?????577536??2018-03-29?14:12??MyArcball\MyArcball\Debug\vc140.pdb

?????文件??????10611??2018-03-29?14:05??MyArcball\MyArcball\loadmodel.cpp

?????文件???????1107??2018-03-29?14:05??MyArcball\MyArcball\loadmodel.h

?????文件???????6293??2018-03-29?14:12??MyArcball\MyArcball\MyArcball.cpp

?????文件???????7846??2018-03-29?14:09??MyArcball\MyArcball\MyArcball.vcxproj

?????文件???????1345??2018-03-29?14:09??MyArcball\MyArcball\MyArcball.vcxproj.filters

?????文件??????66707??2017-04-18?19:10??MyArcball\MyArcball\obj\bird.obj

?????文件????6656387??2018-03-27?23:19??MyArcball\MyArcball\obj\color-tomota.obj

?????文件??????65024??2018-03-28?23:55??MyArcball\MyArcball\obj\rock.obj

?????文件?????394444??2017-04-18?19:10??MyArcball\MyArcball\obj\rubby.obj

?????文件??????17844??2017-04-18?19:10??MyArcball\MyArcball\obj\torus.obj

?????文件????6659036??2018-03-27?22:26??MyArcball\MyArcball\obj\tri-tomato.obj

............此處省略15個文件信息

評論

共有 條評論