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=24 表示

除了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)往下走餘數個點


程式如下



-----

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 questioner 的頭像
    questioner

    questioner

    questioner 發表在 痞客邦 留言(0) 人氣()