2012-07-17 82 views
0

我正在設計一個圖表,它將有多個散點圖。數據每個集合的散點圖數量會發生變化。我試圖用顏色區分散點圖,但是我遇到了一些麻煩。核心情節:隨機顏色的散點圖

目前,我有一個for循環,爲數組中的每個對象創建一個散點圖。在for循環中,我設置了一個基於隨機數的顏色:

lineStyle.lineColor = [CPTColor colorWithComponentRed :((arc4random()%255)/255.0)green:((arc4random()%255)/255.0 )blue:((arc4random()%255)/255.0)alpha:1.0];

這有時會起作用,但是顏色有時可能太難與其他顏色區分,或者可能完全是白色。有沒有更好的方法來生成隨機顏色(也許類似於餅圖生成顏色的方式)?

回答

1

我不認爲在這個問題中確實有任何特定的核心情節,這實際上只是一個以編程方式生成配色方案的問題。

作爲一個想法如何做到這一點優於只是純粹的隨機數,繼承人爲我會怎麼做一些幾乎僞代碼:

float red = 0; 
float blue = 0; 
float green = 0; 
while(need more colors){ 
    float colorToInc = (arc4Random()%100)/100; 
    float incValue = (arc4Random()%100)/500;//value between 0 and .2 
    if(colorToInc < .3){ 
     red += incValue; 
     if(red > 1) 
      red -= 1; 
    }else if(colorToInc < .7){ 
     green += incValue; 
     if(green > 1) 
      green -= 1; 
    }else{ 
     blue += incValue; 
     if(blue > 1) 
      blue -= 1; 
    } 
    newcolor = [color with red:red blue:blue green:green]; 
} 
0

對我來說,以下工作:

red = (arc4random()%100)/100.0; 
green = (arc4random()%100)/100.0; 
blue = (arc4random()%100)/100.0; 
[UIColor colorWithRed:red green:green blue:blue alpha:1];