我認爲這是每圈的點數......精度和速度之間的妥協。我通常使用36個小圈子,90個大圈子。 ...和幾千個巨大的...所以這個想法是使用盡可能少的計數,而圓仍然看起來像圓(最大變焦),而不是像多邊形。
也可以計算該代數...
da=2.0*M_PI/n
e=r-(r*cos(0.5*da))
其中n
是線段的每週的數目和e
是從所希望的圓形的最大距離。如果以像素爲單位將其設置爲所需的錯誤(和半徑r
是以像素爲單位),則:
n=M_PI/acos((r-e)/r)
希望我沒有在直接在SO編輯推導公式犯任何錯誤。所以,如果你想真正正圓形設置e=0.4 [pixels]
,你應該罰款
[EDIT1]正弦波
for循環創建列表機智這些屬性:
d(i) = < 0.0 , 10.0)
i = { 0,1,2,...83 }
然後sinwave呈現:
x(i) = xscale * d(i)
y(i) = yscale * sin(d(i)-time)
它給你:
x(i) = < 0.0 , xscale)
y(i) = < -yscale , +yscale)
所以sinwave呈現10/(2*PI)= ~ 1.59
時期。視野切斷了半重疊。所以理論上你可以使用6.28/84 -> 7/84
而不是10/84
,但它可能只是安全的價值來處理渲染的不同長寬比seettings(我沒有在該平臺編碼,所以這只是猜測在我身邊)但正如我在評論中所說sinwave被縮放,所以PI
期間x
大小等於PI*circle_radius
所以84最可能來自圓圈(我的原始答案)。
是的,就是這樣! –
實際上,示例中的代碼用於正弦圖上的點而不是圓。它們根本不在圓圈中使用 – dagda1
@ dagda1但是sinwave縮放到圓的大小,所以它或多或少是相同的東西 – Spektre