-
大小: 4.01MB文件類(lèi)型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-12-23
- 語(yǔ)言: 其他
- 標(biāo)簽: 轉(zhuǎn)換矩陣??
資源簡(jiǎn)介
求解兩個(gè)坐標(biāo)洗之間的轉(zhuǎn)換矩陣,即求解旋轉(zhuǎn)量和平移量

代碼片段和文件信息
/************************************************************************/
/*?file:Main.cpp????????????????????????????????????????????????????????*/
/*?author:?Hao?Shuang???????????????????????????????????????????????????*/
/*?created?date:?10/24/2010?????????????????????????????????????????????*/
/*?modified?date:?2010年10月24日17:05:14?????????????????????????????????*/
/*?function:?utilities?handle?the?tracker???????????????????????????????*/
/************************************************************************/
#include?“CollisionDetection.h“
//constructor:?insert??the?elements?in?the?const?float?array?into?the?left?vector
CollisionDetection::CollisionDetection()
{
//連接到命名管道
connect_pipe();
for?(int?i=0;i<4;i++)
{
Vec3f?temp(points[i][0]points[i][1]points[i][2]);
this->left.push_back(temp);
}
//{4.04.010.0};//{-2.00.010.0}
offs[0]=4.0;
offs[1]=4.0;
offs[2]=10.0;
}
CollisionDetection::~CollisionDetection()
{
}
int?CollisionDetection::connect_pipe()
{
if?(FALSE==WaitNamedPipe(“\\\\.\\pipe\\TrackerService“NMPWAIT_WAIT_FOREVER))
{
std::cout<<“Cannot?connect?to?the?server...“< Sleep(2000);
return?-1;
}
else
{
std::cout<<“connect?to?the?server?successfully...“< }
createHandle=CreateFile(“\\\\.\\pipe\\TrackerService“GENERIC_READ0NULLOPEN_EXISTINGFILE_ATTRIBUTE_NORMALNULL);
if?(createHandle==INVALID_HANDLE_VALUE)
{
std::cout<<“open?the?pipe?failed...“< return?-1;
}
else
{
std::cout<<“open?the?pipe?successfully...“< }
return?0;
}
//更新跟蹤器數(shù)據(jù)
void?CollisionDetection::updateData()
{
//read?record?from?the?named?pipe
DWORD?lpNumberOfBytesRead;
ReadFile(createHandle&darsizeof(dar)(LPDWORD)&lpNumberOfBytesReadNULL);
std::cout< }
//得到傳感器缺口位置的坐標(biāo)
void?CollisionDetection::getRealPosition(float?res[]int?x0int?y0int?z0)
{
updateData();
res[0]=dar.x+x0*dar.s[0][0]+y0*dar.s[1][0]+z0*dar.s[2][0];
res[1]=dar.y+x0*dar.s[0][1]+y0*dar.s[1][1]+z0*dar.s[2][1];
res[2]=dar.z+x0*dar.s[0][2]+y0*dar.s[1][2]+z0*dar.s[2][2];
}
//fit?for?array
void?CollisionDetection::equation(float?res[]?float?a[]?float?b[])
{
res[0]?=?(a[2]?*?b[1]?-?b[2]?*?a[1])?/?(a[0]?*?b[1]?-?b[0]?*?a[1]);
res[1]?=?(a[2]?-?a[0]?*?res[0])?/?a[1];
}
//fit?for?variants
void?CollisionDetection::equation2(float?*x?float?*y?float?a1?float?b1?float?c1?float?a2?float?b2?float?c2)
{
*x?=?(c1?*?b2?-?c2?*?b1)?/?(a1?*?b2?-?a2?*?b1);
*y?=?(c1?-?a1?*?*x)?/?b1;
}
void?CollisionDetection::equation3(float?res[]?float?m[]?float?n[]?float?p[])
{
equation2(&(res[0])?&(res[1])?m[0]?*?p[2]?-?p[0]?*?m[2]?m[1]?*?p[2]?-?p[1]?*?m[2]?
m[3]?*?p[2]?-?p[3]??*?m[2]?n[0]?*?p[2]?-?p[0]?*?n[2]?n[1]?*?p[2]?-?p[1]?*?n[2]?n[3]?*?p[2]?-?p[3]?*?n[2]);
res[2]=?(m[3]?-?m[0]?*?res[0]?-?m[1]?*?res[1])?/?m[2];
}
//驗(yàn)證上述計(jì)算三元一次方程組的函數(shù)是否正確
void?CollisionDetection
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件?????285444??2010-07-17?17:13??CollisionDetection\CollisionDetection\CollideLIB.lib
?????文件???????8058??2011-03-03?21:58??CollisionDetection\CollisionDetection\CollisionDetection.cpp
?????文件???????2385??2011-03-03?21:55??CollisionDetection\CollisionDetection\CollisionDetection.h
?????文件???????1494??2010-11-25?10:48??CollisionDetection\CollisionDetection\CollisionDetection.ncb
?????文件???????5617??2011-05-11?16:59??CollisionDetection\CollisionDetection\CollisionDetection.vcproj
?????文件???????1427??2011-05-11?16:59??CollisionDetection\CollisionDetection\CollisionDetection.vcproj.PC-201007171505.Administrator.user
?????文件??????19832??2011-03-03?21:57??CollisionDetection\CollisionDetection\Debug\BuildLog.htm
?????文件????????663??2010-11-22?20:17??CollisionDetection\CollisionDetection\Debug\CollisionDetection.exe.em
?????文件????????728??2010-11-22?20:17??CollisionDetection\CollisionDetection\Debug\CollisionDetection.exe.em
?????文件????????621??2011-03-03?21:57??CollisionDetection\CollisionDetection\Debug\CollisionDetection.exe.intermediate.manifest
?????文件?????218829??2011-03-03?21:57??CollisionDetection\CollisionDetection\Debug\CollisionDetection.obj
?????文件??????58410??2011-03-03?21:56??CollisionDetection\CollisionDetection\Debug\Main.obj
?????文件?????????69??2011-03-03?21:57??CollisionDetection\CollisionDetection\Debug\mt.dep
?????文件??????35012??2010-11-22?20:17??CollisionDetection\CollisionDetection\Debug\polytope.obj
?????文件?????320128??2011-02-25?21:39??CollisionDetection\CollisionDetection\Debug\Transform.obj
?????文件?????781312??2011-03-03?21:57??CollisionDetection\CollisionDetection\Debug\vc90.idb
?????文件?????348160??2011-03-03?21:57??CollisionDetection\CollisionDetection\Debug\vc90.pdb
?????文件??????28455??2010-11-10?18:41??CollisionDetection\CollisionDetection\jama_eig.h
?????文件???????3721??2011-05-11?16:56??CollisionDetection\CollisionDetection\Main.cpp
?????文件?????????33??2010-11-05?13:49??CollisionDetection\CollisionDetection\PCIBird3.ini
?????文件???????2322??2010-11-12?11:32??CollisionDetection\CollisionDetection\polytope.Cpp
?????文件????????730??2010-07-17?16:24??CollisionDetection\CollisionDetection\polytope.H
?????文件???????4883??2005-02-11?14:21??CollisionDetection\CollisionDetection\tnt_array1d.h
?????文件???????5173??2010-11-10?18:40??CollisionDetection\CollisionDetection\tnt_array2d.h
?????文件??????10757??2004-10-15?17:06??CollisionDetection\CollisionDetection\tnt_cmat.h
?????文件???????4396??2004-11-16?14:50??CollisionDetection\CollisionDetection\tnt_i_refvec.h
?????文件????????494??2004-10-15?17:06??CollisionDetection\CollisionDetection\tnt_math_utils.h
?????文件???????1585??2004-10-15?17:06??CollisionDetection\CollisionDetection\tnt_subsc
?????文件???????7175??2004-11-16?14:36??CollisionDetection\CollisionDetection\tnt_vec.h
?????文件???????5110??2011-02-25?16:16??CollisionDetection\CollisionDetection\Transform.cpp
............此處省略19個(gè)文件信息
評(píng)論
共有 條評(píng)論