資源簡介
該程序在.Net2005環境下,使用C++進行編程,原始數據存儲在文本文件中,文本文件保存的是點和弧段信息(也可以是邊)。讀取數據后,算法能夠自動生成拓撲信息,并實現含島多邊形,多邊形使用鏈狀獨立編碼,最后多邊形拓撲信息顯示在屏幕上。通過對傳統的拓撲信息生成算法進行了改進,消除了其存在的弊端,從而極大地提高程序運行的效率。
算法效率高于左轉算法,簡易并不簡單!
純c++編碼。
代碼片段和文件信息
#include?“StdAfx.h“
#include?“CreatePolygons.h“
const?float?PI?=?acos(-1.0f);
char?CreatePolygons::Pid?=?‘A‘;
CreatePolygons::CreatePolygons(void)
{
}
CreatePolygons::~CreatePolygons(void)
{
}
/*
*函數功能: 計算兩條直線逆時針方向的夾角
*參數信息: start:起始點;inf:拐點;end:終止點
*返回值: 兩條直線之間的夾角(弧度);10.0f則表示計算錯誤
*/
double?CreatePolygons::AngleOfTwoArcs(Point*?start?Point*?inf?Point*?end)
{
double?aa?=?(?start->X?-?inf->X?)?*?(?start->X?-?inf->X?)?+?(?start->Y?-?inf->Y?)?*?(?start->Y?-?inf->Y?);
double?bb?=?(?inf->X?-?end->X?)?*?(?inf->X?-?end->X?)?+?(?inf->Y?-?end->Y?)?*?(?inf->Y?-?end->Y?);
double?cc?=?(?start->X?-?end->X?)?*?(?start->X?-?end->X?)?+?(?start->Y?-?end->Y?)?*?(?start->Y?-?end->Y?);
double?cosValue?=?(?aa?+?bb?-?cc?)?/?(?2?*?sqrt(?aa?)?*?sqrt(?bb?)?);
double?angle?=?ac
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????.CA....????278528??2009-04-22?19:41??Crosstopology\debug\topology.exe
????.CA....????855904??2009-04-22?19:41??Crosstopology\debug\topology.ilk
????.CA....???1436672??2009-04-22?19:41??Crosstopology\debug\topology.pdb
????.CA....???1021494??2009-01-18?19:22??Crosstopology\Lines.bmp
????.CA....???????288??2009-02-19?15:13??Crosstopology\Lines.txt
????.CA....???1278854??2009-02-16?20:56??Crosstopology\Lines1.bmp
????.CA....???????940??2009-02-19?22:55??Crosstopology\Lines1.txt
????.CA....???????313??2009-12-03?20:51??Crosstopology\readme.txt
????.CA.SH.??????5632??2009-03-17?10:57??Crosstopology\Thumbs.db
????.CA....?????10875??2009-04-22?19:41??Crosstopology\topology\CreatePolygons.cpp
????.CA....??????1775??2009-02-16?22:41??Crosstopology\topology\CreatePolygons.h
????.CA....??????6503??2009-02-19?22:49??Crosstopology\topology\CreateTopology.cpp
????.CA....??????1417??2009-02-19?22:48??Crosstopology\topology\CreateTopology.h
????.CA....??????1172??2009-02-19?22:08??Crosstopology\topology\DataModel.h
????.CA....??????4072??2009-10-12?18:31??Crosstopology\topology\Debug\BuildLog.htm
????.CA....????715125??2009-04-22?19:41??Crosstopology\topology\Debug\CreatePolygons.obj
????.CA....????776949??2009-02-19?22:49??Crosstopology\topology\Debug\CreateTopology.obj
????.CA....????????67??2009-04-22?19:41??Crosstopology\topology\Debug\mt.dep
????.CA....?????10749??2009-02-19?22:41??Crosstopology\topology\Debug\stdafx.obj
????.CA....???????403??2009-02-19?22:41??Crosstopology\topology\Debug\topology.exe.em
????.CA....???????468??2009-02-19?22:41??Crosstopology\topology\Debug\topology.exe.em
????.CA....???????385??2009-04-22?19:41??Crosstopology\topology\Debug\topology.exe.intermediate.manifest
????.CA....????251127??2009-02-19?22:48??Crosstopology\topology\Debug\topology.obj
????.CA....???1048576??2009-02-19?22:41??Crosstopology\topology\Debug\topology.pch
????.CA....????388096??2009-10-12?18:31??Crosstopology\topology\Debug\vc80.idb
????.CA....????356352??2009-04-22?19:41??Crosstopology\topology\Debug\vc80.pdb
????.CA....???????954??2009-01-13?19:25??Crosstopology\topology\ReadMe.txt
????.CA....???????213??2008-12-30?20:43??Crosstopology\topology\stdafx.cpp
????.CA....???????276??2008-12-30?20:43??Crosstopology\topology\stdafx.h
????.CA....???????922??2009-10-12?18:29??Crosstopology\topology\topology.cpp
............此處省略15個文件信息
評論
共有 條評論