構造斷層面
void testbuildsurf()
else if( linetype==2)
faultlines.push_back( pline );//斷層線
else
delete pline;
flag = fset.movenext();
} // 統計高程範圍
double dmax = -1e+17, dmin = 1e+17;
for(int i=0; idmax )
dmax = heights[i];
if( heights[i]faultfaces;
for( int i=0; ivectordot3d;
vectorvectortri;
int dotnum = faultlines[i]->m_varlin.dotnum()-1;//封閉折線上的點多了乙個重複點。所以減1
// 重新定義大小
vectordot3d.resize(dotnum * 2);//二維點拉伸成三維的面
vectortri.resize(dotnum * 2);//三角網的個數=2*二維點個數
d_3dot dottemp;
tri tritemp;
for( int dotindex=0; dotindex < dotnum; dotindex++ )
else
tritemp.c = dotindex;
vectortri[dotindex + dotnum ] = tritemp;
} //設定面的點集 三角網集
psu***ce->set( dotnum*2, &vectordot3d.front(), dotnum*2, (dword*)&vectortri.front() );
//斷層面
faultfaces.push_back(psu***ce);
//更新面要素
} // 獲取高程樣本點,構建三角網tin
vectorsampledots;
for( int i=0; im_varlin.dotnum()-1; j++ )
} // 利用斷層面切割tin,並儲存
long pntnum = 0, trinum = 0;
d_3dot *ptripnt = null;
dword *ptri = null;
dword *ptritopo = null;
tncreatedelaunaytinbymempnts( null, null, &sampledots.front(), sampledots.size(), null, 0, 0, false,
pntnum, &ptripnt, trinum, &ptri, &ptritopo );
canysu***ce tins;
tins.set( pntnum, ptripnt, trinum, ptri, ptritopo );
tnfreetinpntnet( ptripnt, ptri, ptritopo );
// 釋放記憶體
for( int i=0; i切割面
void cutsurf()
{ geoclass geofaceline, geofacefault, geofaceresult;
csfeaturecls *pfacelinecls = null, *pfacefaulcls = null, *pfaceresultcls = null;
canysu***ce faceline, facefault;
cmultisu***ce resultfaces;
//開啟基本要素類
geofaceline.open( "gdbp://mapgislocal/plugintest/sfcls/isoheightsurf" );
geofaceline.get( (void**)&pfacelinecls, "csfeaturecls" );
geofacefault.open( "gdbp://mapgislocal/plugintest/sfcls/faultsurf" );
geofacefault.get( (void**)&pfacefaulcls, "csfeaturecls" );
geofaceresult.open( "gdbp://mapgislocal/plugintest/sfcls/resultsurf" );
geofaceresult.get( (void**)&pfaceresultcls, "csfeaturecls" );
if( pfacelinecls==null || pfacefaulcls==null || pfaceresultcls==null )
return;
pfaceresultcls->cls_clear();
//獲取三維面
pfacelinecls->su***ce_get( 1, &faceline );//高程面
pfacefaulcls->su***ce_get( 1, &facefault );//斷層面
int i=facefault.getpointnum();
int j=faceline.getpointnum();
//曲面與曲面相互切割重構
g3dxcutsu***cewithsu***ce(&faceline, &facefault, &resultfaces);
int item=resultfaces.getnum();
for( long i=0; i構建位址面 二維轉三維
1.三維地學建模-》資料匯入 -》平面地質圖匯入
MATLAB 等高線的繪製
語法 contour z contour x,y,z contour levels contour linespec contour name,value contour ax,m contour m,c contour 說明 contour z 建立乙個包含矩陣 z 的等值線的等高線圖,其中 z ...
實現高程點到等高線的轉換
1 啟動arccatalog,新建資料庫data.mdb,在空白處右擊,匯入data.txt,四個字段分別為code 設為主健 x y z,儲存為表point。2 啟動arcmap,tools add xy data,在 choose a table 中新增資料庫data.mdb 中點已被展繪 3 ...
四種等高線的區別
等高線按其作用不同,分為首曲線 計曲線 間曲線與助曲線四種。1 首曲線,又叫基本等高線,是按規定的等高距測繪的細實線,用以顯示地貌的基本形態。2 計曲線,又叫加粗等高線,從規定的高程起算面起,每隔五個等高距將首曲線加粗為一條粗實線,以便在地圖上判讀和計算高程。3 間曲線,又叫半距等高線,是按二分之一...