Pyslvs 編譯進度 - 演算法:

  • 介面

  • 程式

Pyslvs 編譯進度 - 演算法

介面

稍微改寫介面:

加入可以控制部份限制值的功能,並做好回傳結果的 dictionary 分類。

考慮之後,最後還是拿回進度條,做成流動的樣式(最大最小值設為 0 即可)。

除了現在的視窗外,之後還會加入第二個較小的清單窗格供使用者挑選,切換清單選擇項目時即可預覽,點選「合併」按鈕即可合併至畫布。

程式

測試不同組座標放入,發現超過當初預設的數目時,kernel 會報錯。

p = len(path)
upperVal = Limits[0]+[360.0]*p
lowerVal = Limits[1]+[0.0]*p
Parm_num = p+9

這裡 p 代表座標的數量,upperVal 和 lowerVal 是限制值的組合(共 9 項)加上後面點座標的轉動可能性。

Parm_num 會帶入三種演算法的 nParm、D 位置,必須等於 upperVal 和 lowerVal 的長度。

比較好奇的是最後回傳的 fitnessParameter 長度會剛好等於 Parm_num,而且前 9 項是 Ax、Ay、Dx、Dy、L0、L1、L2、L3、L4 的答案,後面都是超過範圍的 float 數值,不知道代表含意。

預覽的部份比較複雜,因為當前的 Solvespace 解題 function 是針對左邊的表單寫的,若是拿來運算 3 個未知點的圖形,必須改寫帶入參數。

單機演算法解題的部份預計寒假初完成,釋出 Version 0.4.0,寒假進行中會加入平行運算,並同時完成其他項目。


Comments

comments powered by Disqus