2014-03-29 51 views
0

我有一個數學問題。插值或其他數學公式

我正在處理一個定義漸變大小的圖形函數。 但是,此大小不是以像素爲單位,而是範圍從0到1的值。

我想找到一個公式來自動確定任何大小的期望值。

但只是用我的眼睛我發現

  • 如果尺寸爲1000個像素,值應爲0.96〜。
  • 如果尺寸是498像素,則值應該是〜0.93。
  • 如果大小爲306像素,則該值應爲〜0.9。
  • 如果大小爲239像素,則值應爲〜0.86。
  • 如果大小爲175像素,則值應爲〜0.79。
  • 如果大小爲50像素,則該值應爲〜0.25。

有沒有人知道一個公式來計算給定像素大小的值的大小? 還是有人有一個良好的數學理解馬上看到基礎公式? 我認爲,這些價值觀並不完全正確。我不得不用我的眼睛,以確定哪個值,須出示我需要的梯度:

enter image description here

+0

我編輯了您的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

回答

1

試試這個公式。這不完全準確,但我希望它足夠準確:

FocusScale = 1 - 37.251/uSize 
1
Private Function pGetFocusScale(ByVal uSize As Double) As Double 

    Dim d As Double 
    d = 20/(uSize/2) 

    Return 1 - d 

End Function 

它用於

 Dim nPathGradientBrush As New PathGradientBrush(somePath) 
     Dim dblFocusX As Double = pGetFocusScale(someRect.Width) 
     Dim dblFocusY As Double = pGetFocusScale(someRect.Height) 
     nPathGradientBrush.FocusScales = New System.Drawing.PointF(dblFocusX, dblFocusY) 

http://msdn.microsoft.com/de-de/library/system.drawing.drawing2d.pathgradientbrush.focusscales%28v=vs.110%29.aspx

+0

它是如何工作的? –

+1

Formula'FocusScale = 1-37.251/uSize'看起來更準確。 :) – Dmitry

+0

@Dmitry你是否從我發佈的數值中猜出它,我的意思是你是一個美麗的頭腦,或者你是如何知道37.251的? – tmighty