陳東風一番對於編程方向的分析引起了其他三人的疑惑,陳東風光要搞個底層的算法,這搞出來要怎麼用呢?畢竟他們的初衷是要運用到設計中去的。但是陳東風說的也沒有錯,除非有大量的人力物力支持否者他們四人可能連幾何引擎算法都不一定能夠完成。
“東風,我們向院長求救?”楊輝有困難找院長。
“得了吧,現在黃院長的魂已經被Mini2給勾走了,恐怕他是沒有空理我們,再說了我們是航空院又不是計算機院,巧婦難爲無米之炊啊。”唐昌宏嘆口氣道。
陳東風一拍大腿說:“兄弟們,首先我們搞得這個幾何引擎可能一點實用價值都沒有,這樣我們也是張不開口求助學校。現在院長給我們批准了兩個客戶端已經是天大的面子了。這樣我們先搞起來,等搞出點眉目,我估計楊光老師那裡也差不多也忙完了,當時候我們在聯合計算機院來搞這個幾何引擎,怎麼樣?”
陳東風都這樣說了,三人自然沒有意見,畢竟現在都是紙上談兵階段,連幾何引擎的功能分析還沒有做完。正好這段時間VAX-11還沒有到,四人利用這段時間先把框架討論出來。
其實陳東風四人還不知道1979年,SDRC公司發佈了世界上第一個完全基於實體造型技術的大型CAD/CAE軟件──IDEAS。由於實體造型技術能夠精確表達零件的全部屬性,在理論上有助於統一CAD、CAE、CAM的模型表達,給設計帶來了驚人的方便性。可以說,實體造型技術的普及應用標誌着CAD發展史上的第二次技術革命。但是,在當時的硬件條件下,實體造型的計算及顯示速度太慢,限制了它在整個行業的推廣。
現在CAD/CAE等CAX軟件還沒有在硬件的支持下發揮威力,但是隨着這幾年計算機計算能力的大幅度提高,CAX等軟件已經在汽車、航空等製造業發揮越來越重要的作用。
這次陳東風提出的幾何引擎計劃中最爲重要的就是三維造型技術。三維造型技術是建立恰當的模型來表示自然界中形態豐富的三維物體的技術,根據造型對象將造型技術分成3類。
第一類是曲面造型,主要研究計算機內如何描述一張曲面,及曲面的顯示與控制。曲面造型又分成規則曲面和不規則曲面兩種。不規則曲面造型方法他們採用的是貝塞爾曲線曲面。
第二類是立體造型方法,主要研究在計算機內如何定義、表示一個三維物體,主要有體素構造法、邊界表示法和八叉數法等等。曲面造型和立體造型合稱幾何模型造型。
第三類是自然景物模擬,主要研究在計算機內如何模擬自然景物,如雲、流水、樹等。該造型技術主要應用在遊戲和藝術造型等領域。
不過自然景物的模擬不是他們四人的研究重點,曲面和立體造型是他們這次幾何引擎的重點方向。當然三維幾何引擎是重點,二維的幾何引擎也不能少。
二維圖形基本幾何變換是指相對於座標原點和座標軸進行的幾何變換,包括平移、比例、旋轉、反射)和錯切5種變換。
二維和三維的圖形的底層函數算法都實現了才能構成一個完整的幾何引擎。
所謂幾何引擎是是借用機器工業的同名術語,表明在整個系統中的核心地位。也可以稱之爲“支持應用的底層函數庫”或者說是對特定應用的一種抽象。
陳東風想做這個幾何引擎,關鍵還是現在人少,整體CAX系列軟件需要大規模的人員共同開發以及對各種客戶需求的分析。這些都不是目前陳東風他們能掌握的資源,然而搞幾何引擎就不一樣了,最底層的研究關鍵還是算法、結構、效率,以他們四人目前的實力可以勉強實現。
“東風,我問下,如果這個幾何引擎搞出來後,你準備怎麼辦?”楊韋問出了關鍵。
陳東風來回走了幾步,“我也沒有想好,只是覺得這是趨勢,沒有CAX軟件在航空設計等領域的效率會很低。大家有什麼看法?”
“無非有兩條路,一是免費給別人使用,然後根據第三方開發的反饋來不斷的完善這個幾何引擎。二是我們自己組織人研發CAX類軟件。”楊韋說。
楊韋想說的就是如果這個幾何引擎想要完善那麼就必須要有人用,這樣才能不斷的完善發展,所以關鍵問題就是怎麼用了。
唐昌宏在沉默了一會說道:“我們現在想這些是不是太早了,其實這個幾何引擎的使用問題應該不大,由於三維圖形涉及到許多算法和專業知識,要快速的開發三維應用程序是有一定困難的。當應用程序開發人員非常需要一個封裝了硬件操作和圖形算法、簡單易用、功能豐富的三維圖形開發環境,而這個環境就是我們的幾何圖形引擎。所以我們現在的焦點是怎麼開發這個引擎,編程的語言,引擎的架構、算法等等,成品之後的工作還是等等再說吧。”
陳東風接着唐昌宏的話說:“昌宏考慮的很對,我預計這個幾何引擎的代碼有幾十萬行,我們四個人想要完全的可能性不大,還是要先做出第一階段的成果後尋找幫手。編程語言我覺得C語言已經不太合適了,C++是一個很好的選擇。”
自從四人開始晚上計算機後,對編程語言的發展一直是很上心。去年c++由比雅尼·斯特勞斯特魯普博士在貝爾實驗室發明並實現後,C ++開始在編程領域展露頭角。經過一段時間的發展,C ++已經在工業上的開發語言佔很大的比例。
從名字來看,C++在最開始可以稱作C語言的增強版,c ++引入了一些新的函數庫和新的用法,如虛函數,操作符重載,多重繼承,模板,異常處理,名字空間逐漸納入,這使得C++可用性大幅度提高。
現在C++也沒有學習資料,他們現在只是通過雜誌和論文了解了C++的一些情況,不過既然決定使用C++來進行編程了,那麼就需要一套開發軟件了,這個任務只能交給林元禮了。