資源簡介
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文件的程序
評論
共有 條評論