2012-08-29 65 views
-3

我想編寫一個速度表!我有一個針圖像,我希望針根據當前下載速度旋轉。以度爲單位轉換千字節

我有以下方法,但它不工作。當我用CurrentDegress更新針時,它永遠不會下降,只會越來越高;針繞着圓圈旋轉......任何人?

- (void) recalculateDegrees:(CGFloat) currentlyLoadedBytes 
{ 
    if(bytes <= 0){ 
     currentDegrees = 0; 
    } 
    else if (bytes > completeFileSize){ 
     currentDegrees = MAX_DEGREES; 
    } 
    else { 
     CGFloat log_tmp =(CGFloat) log10f(currentlyLoadedBytes/1000); 
     currentDegrees = (log_tmp/5.0f)*290.0f; 
    } 
    //code to rotate image to currentDegrees 
} 
+2

你正在尋找一些基本的三角回答或如何計算的竇和餘弦角度? –

+2

這個米應該表明下載速度,或完成百分比? –

+0

不,我正在尋找正確的計算我的移動針.... :) – davidOhara

回答

1

您可以使用下面的方法來得到速度值的角度(而不是從currentlyLoadedBytes):

- (CGFloat)angleFromSpeed:(CGFloat)speed 
{ 
    if (speed <= 0) { 
     return MIN_ANGLE; 
    } else if (speed >= MAX_SPEED) { 
     return MAX_ANGLE; 
    } else { 
     return speed/MAX_SPEED * (MAX_ANGLE - MIN_ANGLE) + MIN_ANGLE; 
    } 
} 
+0

你好,我沒有得到這個...你能解釋一下多一點,請... :) – davidOhara

+0

awwwwww甜,它的作品....非常感謝你! – davidOhara

0

我不跟着你在做什麼100%,但在某處你else塊,你應該將currentlyLoadedBytes/completeFileSize。另外,bytes應該是cuurentlyLoadedBytes

+0

噢噢,抱歉字節應該是當前LoadedBytes – davidOhara

+0

我想做一個速度測試!我已經計算出了正確的速度,但是現在我想讓我的針旋轉到我圖上的正確位置! – davidOhara

+0

我只用計算速度:speed = currentFileSize /([NSDate timeIntervalSinceReferenceDate] - startTime); – davidOhara