2010-05-23 78 views
2

pixman圖像庫可以在兩個圓之間繪製徑向顏色漸變。我希望徑向漸變填充完全由「寬度」和「高度」定義的矩形區域。現在我的問題,我應該如何選擇外圈的半徑?選擇圓半徑以完全填充矩形

我目前的參數如下:

A) inner circle (start of gradient) 
center pointer of inner circle: (width*0.5|height*0.5) 
radius of inner circle: 1 
color: black 

B) outer circle (end of gradient) 
center pointer of outer circle: (width*0.5|height*0.5) 
radius of outer circle: ??? 
color: white 

我應該如何選擇外圓半徑,以確保外圈將完全填補寬*高定義我的邊框。角落裏不應有空白區域,該區域應完全被圓圈覆蓋。換句話說,邊界矩形的寬度,高度必須完全適合外圓。選擇

outer_radius = max(width, height) * 0.5 

作爲外圈的半徑顯然是不夠的。它必須更大,但更大?

謝謝!

回答

4

圓的直徑應該是對角線的矩形區域,您可以輕鬆地從畢達哥拉斯定理計算。即:

outer_radius = 0.5 * sqrt(width * width + height * height)

0

這只是畢達哥拉斯:

outer_radius = sqrt((width/2)^2 + (height/2)^2); 

或者更簡單地說:

outer_radius = sqrt(width^2 + height^2)/2; 
-1

營造一些草圖,並應用畢達哥拉斯定理:

[用於何去何從素描的圖像;鏈接中斷,現在的主機被標記爲惡意軟件反正]

在代碼:

outer_radius = sqrt(0.25 * (width*width + height*height)) 
0

你的問題是不明確的,但也許你想要的sqrt(W^2 + H^2)/ 2

這是從矩形中心到其角落的距離。

0

使用畢達哥拉斯:

outer_radius = sqrt(width*width + height*height)*0.5 
0

您是否希望兩側相等的寬度/ 2和高度/ 2的直角三角形的斜邊的長度。或者,矩形的對角線長度的1/2。 (h/2^2 + w/2^2) 或1/2 *(h^2 + w^2)的平方根