最簡理解lloyd relaxation和最簡暴力算法
什么是lloyd relaxation?
??? 就是把一堆聚集的點(diǎn)重新調(diào)整,直到“均勻分布到空間”。
輸入:點(diǎn)集
輸出:點(diǎn)集

Houdini中的Point Relax節(jié)點(diǎn)似乎就是這個(gè)功能。
具體算法?
1.將每個(gè)點(diǎn)移動到此點(diǎn)的Voronoi幾何體“中心”。
(中心可以是很多種,算術(shù)平均點(diǎn),重心....)
2.重復(fù)迭代。
(由于每次移動后voronoi幾何體和周圍點(diǎn)都可能移動了,所以還能進(jìn)行下一次迭代。)
3.迭代直到error收斂。
(error為一次迭代中,所有pArr[i]的移動距離總和)
什么是voronoi幾何體?
??? 在空間中,每個(gè)空間點(diǎn)sample都有在點(diǎn)集pArr中距離最近的一點(diǎn)pArr[i],所有sample的集合就是此pArr[i]的voronoi幾何體。
??? 由于點(diǎn)集有限,當(dāng)sample趨近于取滿全部空間時(shí),由于距離判斷的性質(zhì),一定會形成一條明顯的分界“線”,所以一定是幾何體。
最簡暴力算法?
在空間中鋪滿合理個(gè)數(shù)的離散sample點(diǎn),用離散sampleArr代替voronoi幾何體,用sampleArr的算術(shù)平均就成為了voronoi幾何重心。
relax前,準(zhǔn)備好wholeSample點(diǎn):

迭代直到error為0:

有點(diǎn)類似AI,恐怕可以固定pArr數(shù)量,訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)去一步到位。
標(biāo)簽: