Pyslvs 開發進度:

  • 三角求解器的失敗解
  • 演算法收斂圖
  • 往後更新模式

Pyslvs 開發進度

三角求解器的失敗解

因為剛開始帶入 0 度角,若演算法產生的機構在 0 度角時為解決失敗的狀況,就會造成錯誤。

或許其他行程有符合路徑,使用迴圈檢查機構正確性。

answer = [False]
angle = -10.
#從 0 度開始,每 10 度進行一次約束正確性判斷
while False in answer:
    angle += 10.
    #若已經查全部行程,跳出迴圈
    if angle>=360.: break
    s = solver([
        Direction(p1=(Result['Ax'], Result['Ay']), p2=(Result['Dx'], Result['Dy']), len1=Result['L0'], angle=angle, other=other), #B
        Direction(p1=0, p2=(Result['Dx'], Result['Dy']), len1=Result['L1'], len2=Result['L2'], other=other), #C
        Direction(p1=0, p2=1, len1=Result['L3'], len2=Result['L4'], other=other)]) #E
    answer = [(Result['Ax'], Result['Ay']), (Result['Dx'], Result['Dy'])]+s.answer()
if not (False in answer):
    #有(至少部份的)正常行程
    '''合併進畫布'''
else:
    #機構尺寸完全不正確
    '''跳出視窗警告'''

生成時也是使用迴圈測試後合格的角度代入。

目前反覆測試後在 Windows 平台還未遇到問題。

演算法收斂圖

已移除 matplotlib 改用 PyQtChart,解決包裝過於肥大的問題。

測試並做了修正,可以一次比對當前演算結果的收斂速度。

以下是 3 種演算法的比對:

移除 Firefly 後的呈現結果:

往後更新模式

現在移轉到 Fossil 倉儲進行開發,而 Git 倉儲會暫時停止更新。

移轉前已釋出 0.6.5 版(Windows 改採用 NSIS 3.01 作為 installer),之後會在 Fossil 倉儲開發,釋出之後的 0.6 版更新或是 0.7 版。

只有在版本更新時才會 update 到 Github 進行 release。


Comments

comments powered by Disqus