聶雷華
摘 要:隨著互聯(lián)網(wǎng)的日益普及和虛擬現(xiàn)實(shí)技術(shù)的迅猛發(fā)展,應(yīng)用軟件模擬實(shí)驗(yàn)室,成為一種不可阻擋的趨勢。伴隨著分子模擬和計(jì)算生物學(xué)的發(fā)展,計(jì)算機(jī)分子模擬,現(xiàn)在是一個(gè)炙手可熱的研究方法,已逐步變成與理論研究平行的一種方法。它利用計(jì)算機(jī)來構(gòu)造、實(shí)現(xiàn)、分析和儲(chǔ)存分子模型,提供直觀的分子立體圖像。隨著Flare3D的不斷發(fā)展,由于該引擎方便的接口和全面的功能,基于Flare3D的3D環(huán)境越發(fā)的成熟全面、功能強(qiáng)大。文章所描述的就是基于Flare3D的DNA分子模型交互功能,通過ActionScript3.0與Flare3D的結(jié)合,創(chuàng)建一個(gè)虛擬的實(shí)驗(yàn)環(huán)境,在該環(huán)境中可以實(shí)現(xiàn)DNA分子模型的創(chuàng)建、展示。
關(guān)鍵詞:Flare3D;DNA分子模擬;展示
1 引言
分子模擬,是上世紀(jì)80年代興起的一種計(jì)算機(jī)輔助實(shí)驗(yàn)技術(shù),是指利用理論方法與計(jì)算技術(shù),模擬或仿真分子運(yùn)動(dòng)的微觀行為,通過以原子水平的分子模型來模擬分子的結(jié)構(gòu)與行為,進(jìn)而模擬分子體系的各種物理化學(xué)性質(zhì),廣泛的應(yīng)用于計(jì)算化學(xué),計(jì)算生物學(xué),材料科學(xué)領(lǐng)域,小至單個(gè)化學(xué)分子,大至復(fù)雜生物體系或材料體系都可以是它用來研個(gè)小的對象。其研究成果可以用于教學(xué)方面,對于DNA分子的介紹和認(rèn)識,以及對DNA分子結(jié)構(gòu)的深入了解都有所幫助,可以免去制作實(shí)體模型的過程,降低成本,還可以模擬一些簡單的實(shí)驗(yàn),從而能減少在實(shí)驗(yàn)室中進(jìn)行真實(shí)實(shí)驗(yàn)所帶來的時(shí)間長、成本高、危險(xiǎn)大等問題。
2 相關(guān)研究工作綜述
Flare3D 是一個(gè)可以創(chuàng)建基于Adobe Flash 的交互式3D內(nèi)容的平臺(tái)。它具有強(qiáng)大的渲染引擎和直觀的集成開發(fā)環(huán)境,是一款功能強(qiáng)大的3D引擎。Flare3D具有強(qiáng)大的類庫,里面的功能非常全面,同時(shí)再配合上它與3DS MAX的完美結(jié)合,足以讓我們創(chuàng)建一個(gè)完美的三維空間。Flash作為普及率最高的平臺(tái),短小精悍,能夠在各種瀏覽器、操作系統(tǒng)和移動(dòng)設(shè)備上使用,功能強(qiáng)大,兼容性高。Flash被稱為是“最具靈活性的前臺(tái)”,ActionScript是Adobe的Flash平臺(tái)的官方編程語言,用于為Web、移動(dòng)設(shè)備和桌面計(jì)算機(jī)創(chuàng)建內(nèi)容和應(yīng)用程序,可以被許多不同的制作者用于許多不同的途徑。利用Flare3D為Flash創(chuàng)建的內(nèi)容無需任何額外的插件,可直接通過Flash呈現(xiàn)出來。而且Flare3D可以與ActionScript3.0完全結(jié)合,所以通過Flare3D創(chuàng)建的基于Flash的場景及3D內(nèi)容,可以在ActionScript3.0的協(xié)調(diào)下,契合而便捷的通過網(wǎng)絡(luò)展現(xiàn)在用戶面前。
3 本文的技術(shù)路線
首先要為其提供一個(gè)可以呈現(xiàn)對象并對目標(biāo)可以實(shí)施操作的一個(gè)3D舞臺(tái)。通過SWF創(chuàng)建3D場景,然后在其中用private var scene:Scene3D;創(chuàng)建一個(gè)作為我們所有對象的基本容器。有了舞臺(tái)之后就開始考慮模型了。Flare3D可以與3DS MAX很好的結(jié)合做出非常逼真的模型,可以將兩者的優(yōu)勢最大化。在這里我們只用3DS MAX做好幾個(gè)常用的基本模型,然后通過Flare3D將其組合起來形成DNA分子。做好的這些模型以.f3d的形式存在數(shù)據(jù)庫里,使用時(shí)只需要在需要之時(shí)通過簡單的代碼將其加載到舞臺(tái)中即可。Var singleBase:Pivot3D=scene.addChildFromFile(“singleBase.f3d”);
basePair模型為我們創(chuàng)建DNA分子的基本元素,通過對該元素的按坐標(biāo)加載可以構(gòu)建出一個(gè)完整的DNA鏈段。首先我們要選擇坐標(biāo),此坐標(biāo)原點(diǎn)即為分子最低層堿基對的中心位置,以此點(diǎn)為中心向上延伸并旋轉(zhuǎn)從而構(gòu)建出DNA分子。加載了堿基對元素,并設(shè)置了其坐標(biāo)以及角度,并將它添加到舞臺(tái)中從而可以顯示出來。Position為對象的坐標(biāo)原點(diǎn),也就是對象的幾何中心所在的位置。在確定了整個(gè)DNA分子的坐標(biāo)原點(diǎn)(也就是第一個(gè)堿基對的坐標(biāo)原點(diǎn))之后,后面每個(gè)新加載的堿基對都是在原基礎(chǔ)上上升15個(gè)坐標(biāo),即Z軸坐標(biāo)值增加15,同時(shí)Rotate為目標(biāo)的旋轉(zhuǎn)角度,rotateY說明目標(biāo)是圍繞Y軸旋轉(zhuǎn)15度。為所有的堿基對元素設(shè)置一個(gè)整體CONTAINER容器,使其可以作為一個(gè)整體響應(yīng)操作之后,就可以進(jìn)行下一步的展示工作了。
在舞臺(tái)中已經(jīng)有了對象,想要讓對象通過旋轉(zhuǎn)的方式將結(jié)構(gòu)呈現(xiàn)給用戶時(shí),可以為其添加一個(gè)舞臺(tái)繞指定軸旋轉(zhuǎn)的功能:
var _parent:Pivot3D = new Pivot3D();
camera.parent = this._parent;
if(Input3D.keyDown(Input3D.R))_parent.rotateY(1);
如此設(shè)置之后,若想要展示分子的結(jié)構(gòu),只需按住R鍵,整個(gè)場景便會(huì)圍繞Y軸以每秒一度的速度旋轉(zhuǎn)。
4 結(jié)束語
本文提出了一種基于Flare3D的DNA分子的模型模擬以及展示的功能,用于創(chuàng)建3D的DNA分子模型,并將其以旋轉(zhuǎn)的形式展現(xiàn)給用戶??捎糜诮虒W(xué)中對于DNA分子機(jī)構(gòu)更深刻的理解和認(rèn)識。在此研究基礎(chǔ)上,可以為模型添加更多互動(dòng)功能從而達(dá)到模擬實(shí)驗(yàn)室的功能,使得研究可以更全面的為科研工作提供便利。
參考文獻(xiàn)
[1]付偉忠,張運(yùn)陶,程正軍.基于Flash的無機(jī)晶體模型程序編制及其應(yīng)用[J].西華師范大學(xué)學(xué)報(bào),2009,30(2):169-174.
[2]崔波,王艷華.用flash制作三維分子模型[J].計(jì)算機(jī)與應(yīng)用化學(xué),2004,(4):623-626.
[3]李昌國,朱福全,楊宇科.基于WEB的三維虛擬分子實(shí)驗(yàn)室的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(8):173-176.
[4]an open-source Java viewer for chemical structures in 3D: http://jmol.sourceforge.net/.