資源簡介
《計算機圖形學VC》源代碼
書本中的例題習題的源代碼
代碼片段和文件信息
//?baseClass.cpp:?implementation?of?the?CMyClass?class.
//
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“三維變換.h“
#include?“baseClass.h“
#include?“三維變換View.h“
#include?“math.h“
#define?PI?3.141592654
#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
CbaseClass::CbaseClass()
{
}
CbaseClass::~CbaseClass()
{
}
//?此函數賦軸測圖中立體上頂點的齊次坐標值
void???CbaseClass::ReadWorkpiece()?
{
??X[1]?=?0;??Y[1]?=?0;??Z[1]?=?0;??C[1]?=?1;
??X[2]?=?45;??Y[2]?=?0;??Z[2]?=?0;??C[2]?=?1;
??X[3]?=?45;?Y[3]?=?37;??Z[3]?=?0;??C[3]?=?1;
??X[4]?=?0;??Y[4]?=?37;??Z[4]?=?0;??C[4]?=?1;
??X[5]?=?0;??Y[5]?=?37;??Z[5]?=?45;??C[5]?=?1;
??X[6]?=?0;??Y[6]?=?0;??Z[6]?=?45;??C[6]?=?1;
??X[7]?=?12;??Y[7]?=?0;??Z[7]?=?45;??C[7]?=?1;
??X[8]?=?30;??Y[8]?=?0;??Z[8]?=?14;??C[8]?=?1;
??X[9]?=?45;??Y[9]?=?0;??Z[9]?=?14;??C[9]?=?1;
??X[10]?=?45;??Y[10]?=?37;??Z[10]?=?14;??C[10]?=?1;
??X[11]?=?30;??Y[11]?=?37;??Z[11]?=?14;??C[11]?=?1;
??X[12]?=?12;??Y[12]?=?37;??Z[12]?=?45;??C[12]?=?1;
??X[13]?=?12;??Y[13]=21;??Z[13]=45;??C[13]?=?1;
// ?X[14]?=?22;??Y[14]=31;??Z[14]=27;??C[14]?=?1;
}
/***************************************************
*?此函數分別用于三個視圖的投影變換,統一用變換后頂?*
*?點的三個坐標計算公式求其坐標值。這三個公式是由點?*
*?的齊次坐標乘以變換矩陣得來的。實際上每個視圖投影?*
*?只有二個非零坐標需要計算求得,而另一個坐標是零勿?*
*?需計算。因此也可以根據三個不同視圖的投影,分別采?*
*?用其投影后的二個坐標計算式來求坐標值。函數中可用?*
*?條件語句選擇不同視圖投影采用不同坐標計算式求值。?*
***************************************************/
void???CbaseClass::Calculate(array2d?B)
{
??ReadWorkpiece();
??for?(int?i?=?1;??i?<=?12;??++i?)
??{
?????XT[i]?=3*X[i]*B[1][1]+3*Y[i]*B[2][1]+3*Z[i]*B[3][1]+C[i]*B[4][1];
?????YT[i]?=3*X[i]*B[1][2]+3*Y[i]*B[2][2]+3*Z[i]*B[3][2]+C[i]*B[4][2];
?????ZT[i]?=3*X[i]*B[1][3]+3*Y[i]*B[2][3]+3*Z[i]*B[3][3]+C[i]*B[4][3];
??}
}
//?此函數求軸測投影后點的坐標值
void???CbaseClass::MCalculate(array2d?B)
{
??ReadWorkpiece();
??for?(?int?i?=?1;??i?<=?12;??++i?)
??????{
?????XT[i]?=3*X[i]*B[1][1]+3*Z[i]*B[2][1]+3*Y[i]*B[3][1]+C[i]*B[4][1];
?????YT[i]?=3*X[i]*B[1][2]+3*Z[i]*B[2][2]+3*Y[i]*B[3][2]+C[i]*B[4][2];
?????ZT[i]?=3*X[i]*B[1][3]+3*Z[i]*B[2][3]+3*Y[i]*B[3][3]+C[i]*B[4][3];
??????}?
??//?三個坐標計算公式由點的齊次坐標乘以軸測投影變換矩陣得來。
}
void???CbaseClass::WCalculate(array2d?B)
{
??ReadCube1();
??for?(int?i?=?1;??i?<=?12;??++i?)
??{
?????XT[i]?=XP[i]*B[1][1]+YP[i]*B[2][1]+ZP[i]*B[3][1]+CP[i]*B[4][1];
?????YT[i]?=XP[i]*B[1][2]+YP[i]*B[2][2]+ZP[i]*B[3][2]+CP[i]*B[4][2];
?????ZT[i]?=XP[i]*B[1][3]+YP[i]*B[2][3]+ZP[i]*B[3][3]+CP[i]*B[4][3];
??}
}
void?CbaseClass::Display()
{
CframeWnd*?pWnd=(CframeWnd*)AfxGetApp()->m_pMainWnd;
CDC*?pdc=pWnd->GetActiveView()->GetDC();
CRect?rr;
::GetClientRect(pWnd->GetActiveView()->m_hWndrr);
DrawText();
DrawViewV(pdc
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????13796??2004-09-15?19:23??計算機圖形學VC.源代碼\三維變換ok\ba
?????文件???????2164??2004-09-15?18:52??計算機圖形學VC.源代碼\三維變換ok\ba
?????文件??????????0??2004-08-14?14:59??計算機圖形學VC.源代碼\三維變換ok\Cba
?????文件??????33287??2004-09-15?19:23??計算機圖形學VC.源代碼\三維變換ok\Debug\ba
?????文件??????20188??2004-09-15?16:25??計算機圖形學VC.源代碼\三維變換ok\Debug\MainFrm.obj
?????文件?????105950??2004-09-15?16:25??計算機圖形學VC.源代碼\三維變換ok\Debug\StdAfx.obj
?????文件?????230400??2009-06-22?08:25??計算機圖形學VC.源代碼\三維變換ok\Debug\vc60.idb
?????文件?????380928??2004-09-20?14:57??計算機圖形學VC.源代碼\三維變換ok\Debug\vc60.pdb
?????文件?????155728??2004-09-20?14:57??計算機圖形學VC.源代碼\三維變換ok\Debug\三維變換.exe
?????文件?????555740??2004-09-20?14:57??計算機圖形學VC.源代碼\三維變換ok\Debug\三維變換.ilk
?????文件??????23161??2004-09-15?19:07??計算機圖形學VC.源代碼\三維變換ok\Debug\三維變換.obj
?????文件????5563324??2004-09-15?16:25??計算機圖形學VC.源代碼\三維變換ok\Debug\三維變換.pch
?????文件?????533504??2004-09-20?14:57??計算機圖形學VC.源代碼\三維變換ok\Debug\三維變換.pdb
?????文件???????7692??2004-08-19?18:13??計算機圖形學VC.源代碼\三維變換ok\Debug\三維變換.res
?????文件??????14809??2004-09-15?16:25??計算機圖形學VC.源代碼\三維變換ok\Debug\三維變換Doc.obj
?????文件??????81765??2004-09-20?14:57??計算機圖形學VC.源代碼\三維變換ok\Debug\三維變換View.obj
?????文件???????2509??2004-08-14?13:06??計算機圖形學VC.源代碼\三維變換ok\MainFrm.cpp
?????文件???????1581??2004-08-14?13:06??計算機圖形學VC.源代碼\三維變換ok\MainFrm.h
?????文件???????4317??2004-08-14?13:06??計算機圖形學VC.源代碼\三維變換ok\ReadMe.txt
?????文件???????1078??2004-08-14?13:06??計算機圖形學VC.源代碼\三維變換ok\res\Toolbar.bmp
?????文件???????1078??2004-08-14?13:06??計算機圖形學VC.源代碼\三維變換ok\res\三維變換.ico
?????文件????????400??2004-08-14?13:06??計算機圖形學VC.源代碼\三維變換ok\res\三維變換.rc2
?????文件???????1078??2004-08-14?13:06??計算機圖形學VC.源代碼\三維變換ok\res\三維變換Doc.ico
?????文件???????1770??2004-08-19?18:13??計算機圖形學VC.源代碼\三維變換ok\Resource.h
?????文件????????210??2004-08-14?13:06??計算機圖形學VC.源代碼\三維變換ok\StdAfx.cpp
?????文件???????1054??2004-08-14?13:06??計算機圖形學VC.源代碼\三維變換ok\StdAfx.h
?????文件??????29668??2009-06-22?08:25??計算機圖形學VC.源代碼\三維變換ok\三維變換.aps
?????文件???????2767??2009-06-22?08:25??計算機圖形學VC.源代碼\三維變換ok\三維變換.clw
?????文件???????4161??2004-08-14?13:06??計算機圖形學VC.源代碼\三維變換ok\三維變換.cpp
?????文件???????4744??2004-08-14?14:59??計算機圖形學VC.源代碼\三維變換ok\三維變換.dsp
............此處省略714個文件信息
評論
共有 條評論