Cork的一些理解

2021-10-11 16:30:20 字數 515 閱讀 5608

總的來說,cork的實現比較一般,但是思路確是極為優秀的。看作者前前後後好像做了六個月,想來應該是忙於工作,沒太多時間去研究測試。

因為不能發布原始碼,所以只能簡單介紹一下cork的流程以及問題。如果有興趣,可以做為乙個練手專案。

cork的實現原理說起來比較簡單,也比較好理解。但是也很容易遺漏各種情況,或者分不清錯誤的原因。

這裡先簡單說下cork的資料結構,cork的資料結構和off格式檔案的資料結構及其相似,用乙個資料儲存所有的點資料,用乙個資料儲存所有的三角形資料,其中三角形資料中儲存的是點資料的index。

以下是cork的實現流程以及簡單的邏輯。

因為布林運算經常會遇到一些共面的情況,但是cork的實現並不能處理共面的情況,所以作者通過對資料加減乙個很小的隨機數來使得共面的兩個三角形變得不共面。

使用的函式是perturbpositions();

尋找所有線段和三角形的交點(線段和三角形一定不共面,如果共面返回上一步),並將交點新增到各個對應的三角形中,並且兩個三角形的兩個交點會連成乙個線段。<

堆疊的一些理解

堆疊是一種執行 後進先出 演算法的資料結構。設想有乙個直徑不大 一端開口一端封閉的竹筒。有若干個寫有編號的小球,小球的直徑比竹筒的直徑略小。現在把不同編號的小球放到竹筒裡面,可以發現一種規律 先放進去的小球只能後拿出來,反之,後放進去的小球能夠先拿出來。所以 先進後出 就是這種結構的特點。堆疊就是這...

const 的一些理解

以前覺得自己對const還是有些理解的,今天一兄弟問了乙個問題才讓我對這個東西又加深了些了解 class temp public void output void func const temp a a.output 就這麼簡單乙個東西,眨眼一看,沒什麼問題,但是編譯是不會通過的,因為func呼叫了...

linuxI O的一些理解

同步i o 阻塞i o 非同步i o 非阻塞 同步,非同步的概念本來是通訊領域的,很難解釋清楚,但我肯定他跟阻塞非阻塞完全沒有任何關係。在這裡的同步非同步,我個人的理解是函式呼叫的時候的同步非同步。其實同步方式很好理解,例如你呼叫乙個function,當這個function執行完後,這個方法實現的功...