[問題] 實做 BSP Tree

看板C_and_CPP作者 (whgu)時間15年前 (2010/05/17 00:51), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 最近有個作業是要寫 Binary Space Partition Tree (BSP Tree) 相關的演算法我已經知道了,寫法大致上也有想過一次 現在卡在一個剛開始的地方 為了簡化問題,我們的物體都只是2D的牆 (Wall) 假設現在我以 Wall A 為當下基準的 TreeNode 我要開始逐個比較,之後的 Wall B,C,D... 是在 A 前還在 A 後 我知道用個點斜式就可以判斷出來是在此一面,彼一面,或是剛好橫跨 但是我現在不知道哪一區算是"前面",哪一區是"後面"? A \ \ B | \ ( 這一側是 front 還是 back 呢? ) | \ | \ \ 我翻了書還有網路,但是沒有找到說明要當成是 front 或 back 也許是這問題太簡單,各個參考資料都直接視為理所當然,所以沒寫出來 但是我問了幾個同學,他們也跟我一樣不知道要怎麼分 我自己有想過是不是把眼睛 (Cemera) 的位置也參考進去,考慮跟眼睛同側或異側? 但是這樣不就每動一次就要建一次樹,不合理阿 而且 Render 的時候就會考慮眼睛在該 TreeNode 的 front 或 back 所以應該不是我想的這樣 想請問版上先進 可否給點提示要把哪側當成是 front 或 back? 謝謝 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) VS2008 C++ OpenGL -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.93.39

05/17 01:59, , 1F
一般是以視點所在的半區為 front
05/17 01:59, 1F

05/17 01:59, , 2F
啊沒看到後半段 那這樣的話任一個方便的參考點都可以
05/17 01:59, 2F

05/17 02:00, , 3F
有點斜式的話代入 (0,0) (即取常數項) 比較方便
05/17 02:00, 3F

05/17 09:22, , 4F
所以隨便任意點都可以囉 謝謝樓上 我去試試
05/17 09:22, 4F

05/18 05:16, , 5F
用向量的外積(Cross Product),指向上或指向下,
05/18 05:16, 5F

05/18 05:16, , 6F
就可以決定前後了.
05/18 05:16, 6F

05/18 05:21, , 7F
抱歉,我講錯了.
05/18 05:21, 7F

05/18 10:51, , 8F
Sorry我不懂,2D怎麼會有外積,可以更詳細一點嗎,非常感謝
05/18 10:51, 8F
文章代碼(AID): #1By2AkQW (C_and_CPP)