1. Java / Говнокод #9766

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    package com.euc.csvprocessor.misc;
    
    import java.awt.Color;
    /**
     * Генератор кольорів .
     * @author crasht
     *
     */
    public class ColorGenerator {
    	private int c=0;
    	/**
    	 * Повертає наступний колір .
    	 * @return color
    	 */
    	public Color getNextColor(){
    		switch(c){
    		case 0: c++; return Color.BLACK;
    		case 1: c++; return Color.BLUE;
    		case 2: c++; return Color.CYAN;
    		case 3: c++; return Color.DARK_GRAY;
    		case 4: c++; return Color.GRAY;
    		case 5: c++; return Color.GREEN;
    		case 6: c++; return Color.LIGHT_GRAY;
    		case 7: c++; return Color.MAGENTA;
    		case 8: c++; return Color.ORANGE;
    		case 9: c++; return Color.PINK;
    		case 10: c++; return Color.RED;
    		default : c=0; return getNextColor();
    		}
    	}
    }

    Самый рандомный цвет из существующих.

    Запостил: crashtua, 26 Марта 2012

    Комментарии (12) RSS

    • Ну а как же ж без рекурсии-то...
      Ответить
    • смотри, ТарасБ, даже в джаве все пользуются c++
      Ответить
    • Колір.САЛО
      Во-первых, java.awt.Color сам по себе состоит из стандартно-копипастного жабоговна. Во-вторых, в те времена когда его писали в языке не было енумов. Поэтому удобно взять цвет в олдскульной кодировке YRGB от 0 до 15 в жабе вроде как нельзя.
      Ответить
      • Что за YRGB? Ёта-канал?
        Ответить
        • Yaркость. Не знаю как правильно зовется 16-цветное дос-кодирование (EGA, CGA, хз), потому для понятности назвал как RGB+ luma-компонента.
          Там же как было:
          0-black, 8-gray
          1-blue,  9-light blue
          2-green, 10-light green.
          etc

          Верхний бит - это та самая yaркость.
          Ответить
    • В сырцах жабы такое УГ, между прочим, сплошь и рядом.
      public float[] getRGBComponents(float[] compArray) {
              float[] f;
              if (compArray == null) {
                  f = new float[4];
              } else {
                  f = compArray;
              }
              if (frgbvalue == null) {
                  f[0] = ((float)getRed())/255f;//getRed() - берет 1-й байт цвета
                  f[1] = ((float)getGreen())/255f;//getGreen() - 2-й байт
                  f[2] = ((float)getBlue())/255f;//getBlue() - 3-й байт
                  f[3] = ((float)getAlpha())/255f; - 4 байт
              } else {
                  f[0] = frgbvalue[0];
                  f[1] = frgbvalue[1];
                  f[2] = frgbvalue[2];
                  f[3] = falpha;
              }
              return f;
          }
      
          public float[] getRGBColorComponents(float[] compArray) {
              float[] f;
              if (compArray == null) {
                  f = new float[3];
              } else {
                  f = compArray;
              }
              if (frgbvalue == null) {
                  f[0] = ((float)getRed())/255f;
                  f[1] = ((float)getGreen())/255f;
                  f[2] = ((float)getBlue())/255f;
              } else {
                  f[0] = frgbvalue[0];
                  f[1] = frgbvalue[1];
                  f[2] = frgbvalue[2];
              }
              return f;
          }
      
          public float[] getComponents(float[] compArray) {
              if (fvalue == null)
                  return getRGBComponents(compArray);
              float[] f;
              int n = fvalue.length;
              if (compArray == null) {
                  f = new float[n + 1];
              } else {
                  f = compArray;
              }
              for (int i = 0; i < n; i++) {
                  f[i] = fvalue[i];
              }
              f[n] = falpha;
              return f;
          }
      
          public float[] getColorComponents(float[] compArray) {
              if (fvalue == null)
                  return getRGBColorComponents(compArray);
              float[] f;
              int n = fvalue.length;
              if (compArray == null) {
                  f = new float[n];
              } else {
           ...
          }
      Ответить
    • Автор ниасилил энумы и деление с остатком?
      Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий