早期嘗試採用「逐層疊加扇形」法,但側面邊緣會破壞已繪製的層次,導致色塊錯亂。參考 .NET 實作思路後發現:先完整繪製底部橢圓分割面,再整體向上擠出成柱狀,最後蓋上頂面,才是正確的幾何建模順序。
使用 Pie 函數依資料比例繪製各扇形,形成完整的分割橢圓底面。此時僅處理 2D 平面分割,無遮擋問題。
圖一 底部分割橢圓面
以簡單迴圈將底面橢圓向上平移繪製多層,形成連續的側面柱面。關鍵在於先完成所有側面繪製,再處理頂面,避免後繪製的扇形破壞前面的側面。
圖二 側面擠出形成立體厚度
在最上層繪製相同分割的橢圓,使用較亮色調填充,模擬光源照射效果,瞬間提升視覺立體感。
圖三、四 高亮頂面與完整立體效果
圖五 完整含圖例與標註效果
圖六 最終完美渲染結果
此演算法徹底解決了傳統逐扇形疊加的遮擋順序難題,代碼結構清晰(僅需一層擠出迴圈),任意資料量、任意厚度皆能完美渲染,無色塊錯亂、邊緒鋸齒等缺陷。完整原始碼已開源提供。