沈寧
【摘要】本文通過對FORTRAN、C語言和OpenGL圖形庫進行分析,在此基礎上,將三種技術通過動態的鏈接庫結合在一起,實現了對土木工程計算程序的設計,完善其界面。
【關鍵詞】FORTRAN;C語言;OpenGL;混合編程;土木工程計算
通常情況下,土木工程的計算程序都是借助FORTRAN實現的,在運用FORTRAN進行數值的計算過程中,其能夠呈現出不同的優勢,但是,同時也存在效率不高的問題,而且不能在windows的開發環境中使用,不能建立人機界面,在圖形顯示中操作流程過于復雜。C語言是在NET平臺上開發的,這種程序使用了比較簡單的語法,而且便于調試,在程序開發中效率更高。OpenGL是一種圖形庫,里面都是三維的圖形,實現了硬件和軟件的結合使用,使用的效果好,在動畫繪制中常見,而且能夠將圖形的繪制與計算機技術以及虛擬現實技術結合,其是一個模型庫,運用三維的圖像呈現,在不同的平臺上都可以使用。其可以實現幾何模型的建立,通過渲染的方式實現動畫的制作。
一、C語言與FORTRAN的混編
運用C語言能夠實現交互性的界面,建立土木工程計算的框架,將之前的FORTRAN的源代碼進行編譯,形成一個動態的鏈接庫,在此基礎上,能夠將代碼轉送到C語言程序上,完成兩種不同語言的婚變。可以運用編譯器實現文件混合的編程,程序之間應該建立一致的調用程序,建立完善的調用機制。這些機制主要分為堆棧管理機制、命名機制、參數傳遞機制。在C語言和FORTRAN混編中,應該使兩種不同語言的字符參數一直,而且DLL文件能夠顯示出信息的輸出。
(一)字符串參數的一致
在C語言中,字符的結束是運用null數值來表示的,FORTRAN中字符串是在右端設計空格的方式來表示的,運用一個隱藏的參數能夠表示字符串的實際長度。而且,FORTRAN的默認的字符是用ASCII編碼來表示的,所以,FORTRAN要運用編譯器實現中文字符的支持。但是,在C語言中,其字符的編碼是通過unicode實現的,所以,在語言層上就能夠實現支持中文的字符。通過對不同語言的表示方法的分析,分析了影響因素,如果字符串是通過FORTRAN到C語言,那么,可以在NET網絡環境中實現,這時C語言就會自動提供函數字符,將ASCII編碼轉化成unicode編碼。如果字符串是由C語言轉化成FORTRAN,就需要運用字符串的長度來實現。
(二)DLL文件內部的提示信息的輸出
在大型土木工程計算程序的編程中,運用FORTRAN,會出現PRINT等語句,這類的語句表示程序是運行的,在這些程序改造的過程中,是運用DLL文件和C語言一起應用,結合了windows程序后實現的,所以,輸出設備此時不發揮作用。為了能夠分析FORTRAN的內部調制問題,就需要在DLL文件中進行信息輸出,設計信息的函數,建立一個控制臺的窗口,運用PRINT語句建立輸出設備。
二、C語言與OpenGL的混編
C語言是運用NET平臺進行編程的一類高級的語言,但是,在NET環境中,不能夠對OpenGL的接口進行設計,所以,OpenGL中混合C語言,其不能與其他的高級語言一樣實現語句的引用和部署,不能夠直接的使用OpenGL固有的圖形數據庫。所以,在C語言中,這類技術要借助第三方的軟件才能夠實現。
(一)GSGL的動態鏈接庫的分析
GSGL是在windows系統下建立的一類接口,其在C語言中常用。GSGL的動態鏈接庫在使用時是用gldll實現的,形成了不同的類型,在不同的類型中都可以建立OpenGL的標準函數,借助數據庫的函數、輔助型的函數等,設計使用函數庫和常量。在OpenGL能夠生成自動化的定義,通過繪制函數的形式實現了OpenGL場景的定義,在進行場景的初始化和繪制函數中完成兩種高級語言的混編。GSGL在進行程序設計中不一定要用到,但是在程序運行階段其是必不可少的。在對每個空間名稱進行函數定義的過程中是經常使用的,而且能夠借助GSGL在NET環境中實現對查閱庫文件的閱讀。
(二)在C語言中對GSGL的OpenGL的引用
在NET環境中形成C語言的應用程序并不復雜,在IDE換種中選擇C語言的創建項目,然后打開windows程序,將項目的名稱輸入,建設保存的位置,點擊確定,項目就完成了創建。在項目創建的過程中,建立了空間的名稱,而且是以窗口的類型實現的,在應用程序中實現了主入口函數的設計。所以,在建立應用程序框架的過程中,運用程序,要實現對OpenGL的引用,在C語言中借助using關鍵詞實現對不同程序的引用。將OpenGL的繪圖功能在C語言的程序得以更好地應用。
(三)建立OpenGL設備的應用環境
在運用OpenGL進行圖形的繪制中,應該建立設備環境的繪制,建立一個繪制表面,在所建立的空間名稱中加入一個應用,然后再應用中加入很多素材,將這些素材都放在窗口上,實現OpenGL可視化的場景。這樣所以的圖形都可以在窗口上繪制和修改。
(四)創建OpenGL繪制環境和功能的初始化
在繪制表面建立窗口,能夠為OpenGL的運行創作繪制的環境,在OpenGL運行的過程中,其使用的是繪制的環境,而不是設備的環境,所以,要建立完善的繪制環境,不然OpenGL在C語言中是不能執行的。在OpenGL建立一個繪制環境的函數,通過對函數的重寫完成繪制環境的創建,建立繪制環境的初始化。
(五)運用OpenGL進行圖形和場景的繪制
在以上的操作都完成后,就可以借助OpenGL實現場景的繪制,運用繪制函數,設計源代碼,設計單位的矩陣的方式,建立繪制圖形的代碼。
三、混合編程的實現與應用
本文將三種高級語言進行混合編程,在網絡環境下建立語言編譯的環境,以windows作為系統操作的平臺,在此基礎上,借助DOS實現GSAP程序的運行,在windows平臺上實現人機界面的交互,建立交互式的軟件。這類軟件是在原有的程序改造上實現的,運用DLL文件的形式呈現出來,其界面是通過C語言程序編制的,通過建立函數的形式使圖形顯示出來。在程序的混編中,通過運用DOS平臺,實現不同命令的輸入和執行,對結果進行查看,在對windows程序進行計算完成后,其計算和模型的圖像就會直接顯示出來,使用非常得便捷,界面的改造也不復雜。借助三種高級語言的混編能夠實現空白動態鏈接的設計,將源代碼進行統一,運用C語言實現windows應用程序的改進,通過窗口的形式展現出來。
結語:
在土木工程計算程序的改造中,將不同的語言結合在一起,采用混編的形式,能夠提高土木工程相關參數計算的精確度,完善其計算的效率,在C語言中,字符的結束是運用null數值來表示的,FORTRAN中字符串是在右端設計空格的方式來表示的。
參考文獻:
[1]周濤,郭占元,郭向榮. FORTRAN與C#混合編程在土木工程計算中的應用[J]. 山東交通學院學報,2011,01:80-86.
[2]周濤,汪金輝,郭向榮. 利用混編技術對土木工程計算程序的改造[J]. 河北理工大學學報(自然科學版),2011,03:124-129.
[3]覃輝. 測量學教材的便攜編程計算解決方案[J]. 高等建筑教育,2011,03:137-142.
[4]楊敏,肖珂. 試論土木工程信息技術的發展趨勢[J]. 同濟大學學報(自然科學版),2011,11:1346-1351.
[5]黃吉鋒,楊志勇,馬恩成,張志遠,沈文都. 中國建筑科學研究院結構設計軟件的發展與展望[J]. 建筑科學,2013,11:22-29.