close
31 | 32 | 33 | 34 | 35 | 36 | 37 |
30 | 13 | 14 | 15 | 16 | 17 | 38 |
29 | 12 | 3 | 4 | 5 | 18 | 39 |
28 | 11 | 2 | 1 | 6 | 19 | 40 |
27 | 10 | 9 | 8 | 7 | 20 | 41 |
26 | 25 | 24 | 23 | 22 | 21 | 42 |
49 | 48 | 47 | 46 | 45 | 44 | 43 |
家偉問的問題,花了一些中午吃飯時間想的,也順便把程式寫出來了.....
從新定義座標方式
如1=Ring 0
2-9=Ring 1
10-25=Ring 2
26-49=Ring 3
對於座標中的每個數字,可以透過Ring,與Ring中的order 定義(由左下角1,9,25,49..等往回走的個數…)
其公式如下
Given n
Level length= 取數值座標左移最近的奇數(高思符號(開根號(n)))
Level=(level length-1)/2
Order= (level-length)^2- n
如n=31
高斯符號(根號(31))=5.xx
取數值座標左移最近的奇數=5->7….得出level length
(7-1)/2=3 在Level 3
7^2-31=18
18/7=2餘4 表示
除了n=1對應到(0,0)外,其他的規則如下,就是確定ring之後,只要確定是屬於四各control point的哪各區段就可以找出其x,y座標的關係了.....
商0-> 座標(-leven length, -leven length)往右走餘數個點
商1->座標(leven length, -leven length)往上走餘數個點
商2->座標(leven length, leven length)往左走餘數個點
商3->座標(-leven length, leven length)往下走餘數個點
程式如下
-----
全站熱搜