六边形溯源追踪算法编程思想与代码
六邊形算法簡(jiǎn)介
基于濃度梯度的六邊形化學(xué)源追蹤算法是Russell在2003年提出了。該追蹤算法的主要思路如下:
??? While(循環(huán)停止條件){
??? ? If(
?????? Then 在n點(diǎn)處逆時(shí)針旋轉(zhuǎn)60°,前進(jìn)固定步長(zhǎng)m;
??? ?Else
???????? 在n點(diǎn)處順時(shí)針旋轉(zhuǎn)60°,前進(jìn)固定步長(zhǎng)m;
???? End if
}
其中,為在第n個(gè)點(diǎn)處所測(cè)化學(xué)物質(zhì)的濃度,m是算法設(shè)定的步長(zhǎng)。
如下圖5.1所示,當(dāng),即B點(diǎn)濃度高于A點(diǎn),且在n-1處是順時(shí)針旋轉(zhuǎn)時(shí),那么在第n點(diǎn)(C點(diǎn))處,將逆時(shí)針旋轉(zhuǎn)60°,即在C點(diǎn)處的方向?yàn)榇怪毕蛏?#xff0c;偏向了濃度高的區(qū)域,符合期望;當(dāng),即A點(diǎn)濃度高于B點(diǎn),且在n-1處是逆時(shí)針旋轉(zhuǎn)時(shí),那么在第n點(diǎn)(D點(diǎn))處,將逆時(shí)針旋轉(zhuǎn)60°,即從D點(diǎn)到E點(diǎn),路徑為:A-B-D-E,偏向了濃度高的區(qū)域,符合期望。
圖5.1? 六邊形追蹤算法
六邊形算法流程圖
將基于濃度梯度的六邊形溯源追蹤算法的實(shí)現(xiàn)主要包括兩大部分:測(cè)量值傳回電腦、下一點(diǎn)方向及相對(duì)位移的確定。算法流程圖如下:
圖5.2? 六邊形溯源算法流程圖
?5.3 第n點(diǎn)處的方向及相對(duì)位移
在第n個(gè)點(diǎn)處測(cè)量好電導(dǎo)率并傳回電腦的監(jiān)控軟件后,根據(jù)第n-2點(diǎn)與n-1點(diǎn)處的濃度大小和第n-1點(diǎn)處的旋轉(zhuǎn)方向,確定第n+1個(gè)點(diǎn)的位置。
在編程時(shí),需要知道n-1點(diǎn)和n點(diǎn)的坐標(biāo),計(jì)算出這兩個(gè)點(diǎn)所構(gòu)成線段的斜率,再根據(jù)方向策略確定n點(diǎn)和n+1點(diǎn)所構(gòu)成線段的斜率,由固定步長(zhǎng)計(jì)算得到在第n點(diǎn)處的相對(duì)位移。根據(jù)斜率可分為特殊情況和一般情況。
5.3.1 特殊情況
確定第n點(diǎn)方向及相對(duì)位移,特殊情況包括斜率為無(wú)窮大和斜率為0這兩大類,又進(jìn)一步分為下圖中的四種情況:
對(duì)應(yīng)的n+1點(diǎn)分別如下:
5.3.2 一般情況
當(dāng)?shù)趎-1和n點(diǎn)構(gòu)成的線段斜率存在且不為0時(shí),為一般情況。根據(jù)第n-1點(diǎn)和第n點(diǎn)的相對(duì)位置,可分為下圖中的四種情況:
?
變量設(shè)置如下表:
?
總結(jié)
以上是生活随笔為你收集整理的六边形溯源追踪算法编程思想与代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VB Mid函数作用
- 下一篇: Python学习一——Python下载安