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