SORU
25 EKİM 2008, CUMARTESİ


Nasıl pasta grafiği için renk seçin?

Pasta grafiğin görüntü oluşturur bazı kod var. Genel amaçlı bir sınıf, dilimleri herhangi bir sayıda giriş olarak verilebilir. Şimdi sorun dilimleri için iyi renkleri seçmek zorundayım. Bu iyi bir algoritma var mı?

Ya da belki de sadece-seç el ve sabit renk listesi yapmalıyım? Ama kaç tane. 10 renk ve 10 dilimden daha fazla olmaz umarım acaba? 10 renk seçmek için hangi da?

Renkler bazı kuralları takip etmek gerekir:

  • güzel görünmek istiyorlar
  • bitişik renkleri benzer yeşil yanında mavi bir no-go () olmamalıdır
  • pasta arka plan rengi beyaz, beyaz seçeneği kalmadı

Bazı algoritma RGB değerlerini manipüle tercih edilen bir çözüm olurdu.

CEVAP
13 NİSAN 2011, ÇARŞAMBA


Aşağıdaki gibi çözdüm

  1. Bir seçimtemel renk.
  2. Onun hesaplamakhue(baseHue).
  3. Aynı doygunluk ve parlaklık ile renk, renk:
      hue = baseHue   ((240 / pieces) * piece % 240
    
    olarak hesaplanan oluşturun

C#:

int n = 12;

Color baseColor = System.Drawing.ColorTranslator.FromHtml("#8A56E2");
double baseHue = (new HSLColor(baseColor)).Hue;

List<Color> colors = new List<Color>();
colors.Add(baseColor);

double step = (240.0 / (double)n);

for (int i = 1; i < n;   i)
{
    HSLColor nextColor = new HSLColor(baseColor);
    nextColor.Hue = (baseHue   step * ((double)i)) % 240.0;
    colors.Add((Color)nextColor);
}

string colors = string.Join(",", colors.Select(e => e.Name.Substring(2)).ToArray());

HSLColor class kullandım.

12 adet kullanan Google Charts example ve #8A56E2: temel bir renk

Chart Example

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cyriak

    cyriak

    29 Mart 2006
  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • Kurtindo Pop Games

    Kurtindo Pop

    2 HAZİRAN 2013