我沒有解決方案的三維數據結構顯示,並希望得到一些建議。三維數據結構顯示設計:
每個n
節點都有k
孩子。通過球形電子充電算法將兒童分佈在節點的邊界球上。雖然技術上不準確,但最容易的是孩子們在節點的邊界上「均勻分佈」。
目前,我用球體表示節點。然而,對於大的n
,由於繪製球體的複雜性,這變成計算效率低下的動態顯示。
這是必要的溶液以具有可以理解的,在視覺上正則表示爲n
和k_i
所有的選擇,在視覺上常規含義,如果一個線垂直於兩個節點中的兩個面,那麼所有的線垂直於的一些選擇兩個節點的一些選擇的兩個面等等。
我有幾個選擇這裏:
使用球繪製算法,使用更少的面孔來代表一個球體。
- 這看起來很醜陋,從「球體」延伸出來的線不會退出圖形(從「球體」A到「球體」B的線不能保證垂直於入射面A或B,更不用說這兩者。)
使用凸正多面體代替球體,使得多面體的面的數目等於孩子的數目。這將允許線以垂直於繪製多面體A和B.多面體既
- 這是在數學上是不可能的,因爲只有5與非可變多面這樣的數字,但這種結構要求有足夠的面來映射
k
分。如果我們嘗試映射到頂點,則參數保持相似。
- 這是在數學上是不可能的,因爲只有5與非可變多面這樣的數字,但這種結構要求有足夠的面來映射
- 使用????多面體,但畫線從頂點到頂點。
- 我相信這總是有效,因爲據我所知,我繪製的線條勾畫出這些多面體。但是,我不知道繪製這些多面體的高效算法,我不知道他們的名字是要自己查看。
- 社區可能對我有任何建議。
我附上了一張圖片來說明我的顯示器的結構。這是一個帶有根節點的結構,有30個孩子。根節點的孩子沒有孩子。
我已附加的第二畫面,沒有節點繪製,以顯示在3中記載的多面體的一個例子,如果我的意思是不是已經顯而易見。
什麼是您的照明模型?如果你只有無限光源,沒有陰影,沒有反射,那麼所有的球體看起來都是一樣的(除了大小)。您可以渲染一個球體一次,然後根據需要縮放圖像。對於更復雜的模型,沒有足夠的數據來回答這個問題...... –
如果我明白你在說什麼,那麼你正在討論是否生成靜態圖像 - 渲染模型。相反,我希望通過UI中的旋轉,插入,刪除等等動態顯示。如果我誤解了你,那麼我仍然會回答你的問題:我沒有陰影或反射,只有無窮無盡的燈光。 –
僅當觀察者改變其視圖的方向時,球體的視圖纔會改變。然後你需要再次渲染球體。觀察者靜止時,可以對所有球體使用相同的圖像。我也忘了,如果你想模擬一個廣角相機,你需要將視角考慮進去(位於框架中心的球看起來更像橢圓,所以你需要拉伸圖像,不僅需要縮放,而且應該仍然比完整渲染更容易)。 –