三維空間某物體的區域自然生長分割演算法

2021-10-23 23:14:22 字數 2252 閱讀 6848

/

//自動篩檢非標記點體素團

//方法:區域增長,找到體積在合理範圍內的體素團

//void cmssdlg::

getmss()

}//int i=

0,iat=

0,j=

0,n=

0,zmax=

0,zmin=

1000

,lmax=

0,numin=

0,bianhua=

0,l=

0,lpointa=

0,lpointb=0;

double nmid;

double lmaxmid;

nmid=mssdiameter*mssdiameter*

0.25

*pi*msshigh/

(spacing[0]

*spacing[1]

*spacing[2]

);lmaxmid=msshigh*msshigh;

i++; n=0;

while

(in=***.

size()

;//處理

for(

int a=

0;a}//判斷

//if (abs(n-56)<8)if(

abs(n-nmid)

<8)

} numin++

; i++

; n=0;

lmax=0;

***.

clear()

; yyy.

clear()

; zzz.

clear()

;}}/

//getmss()的子函式

//區域增長中的遞迴演算法,檢索每乙個未檢索的點,看是否是高亮點

//void cmssdlg::

searchsur

(short x,

short y,

short z)

if(y+

1)if

(tempptr[z*dims[0]

*dims[1]

+(y+1)

*dims[0]

+x]>limen)

if(y-

1>0)

if(tempptr[z*dims[0]

*dims[1]

+(y-1)

*dims[0]

+x]>limen)

if(z+

1)if

(tempptr[

(z+1

)*dims[0]

*dims[1]

+y*dims[0]

+x]>limen)

if(z-

1>0)

if(tempptr[

(z-1

)*dims[0]

*dims[1]

+y*dims[0]

+x]>limen)

if(y+

1&&x+

1)if

(tempptr[z*dims[0]

*dims[1]

+(y+1)

*dims[0]

+x+1

]>limen)

if(y-

1>

0&&x+

1)if

(tempptr[z*dims[0]

*dims[1]

+(y-1)

*dims[0]

+x+1

]>limen)

if(y+

1&&z+

1)if

(tempptr[

(z+1

)*dims[0]

*dims[1]

+(y+1)

*dims[0]

+x+1

]>limen)

if(y+

1&&z-

1>0)

if(tempptr[

(z-1

)*dims[0]

*dims[1]

+(y+1)

*dims[0]

+x]>limen)

if(y-

1>

0&&z-

1>0)

if(tempptr[

(z-1

)*dims[0]

*dims[1]

+(y-1)

*dims[0]

+x]>limen)

}

三維空間剛體旋轉

剛體 運動過程中不會產生形變的物體,運動過程中同乙個向量的長度和夾角都不會發生變化。剛體變換也稱為歐式變換。旋轉矩陣 四元數旋轉向量 尤拉角安裝方式 eigen庫只有標頭檔案,沒有.so和.a二進位制檔案,所以在cmakelists.txt中只需要新增標頭檔案路徑,並不需要使用target link...

BFS 三維空間迷宮

題面 你被困在乙個三維的空間中,現在要尋找最短路徑逃生!空間由立方體單位構成。每次向上下前後左右移動乙個單位需要一分鐘,且不能對角線移動。空間的四周封閉。你的目標是走到空間的出口。問是否存在逃出生天的可能性?如果存在,則需要多少時間?輸入第一行是乙個數表示空間的數量。每個空間的描述的第一行為l,r和...

三維空間和四維空間

從螞蟻走路可以看出。由於螞蟻受限於自己的身體沒有翅膀,就跟人沒有翅膀一樣,碰到吊在自己頭頂的東西就只能繞遠路通過二維的方法到達三維的地方,所以只要有工具,可以是翅膀,可以是深深固定地上的梯子,也可以是飛機,都可以從受限的二維空間達到三維空間。而且這些手段全都是為了用來克服重力的,所以重力跟第三維有不...