1. C++ / Говнокод #559

    +182.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    float EllipseSquare(Bitmap bmp, float x, float y, float a, float b) {
    	DrawEllipse(bmp, x,y, a, b);
    	int n;
    	for (int y = 0; y < bmp.height; y++) {
    		for (int x = 0; x < bmp.height; x++) {
    			if (bmp.GetPixel(x,y).Color == Color(255,255,255)) {
    				n++;
    			}
                    }
    	}
    	return bmp.GetSquare() * (float) n / (float) (bmp.width * bmp.height);
    }

    Так считается площадь эллипса: вместо простой геометрической формулы, рисуется эллипс и потом считается какую часть он занял от прямоугольника.

    Запостил: guest, 16 Февраля 2009

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

    • леденящий душу пиздец как он есть
      Ответить
    • членс:
      ну так это чисто математический интегральный подход
      ололол!!111
      Ответить
    • Капитан Очевидность:
      этого "математика" за такие подходы нужно сразу к стенке ставить :)
      Ответить
    • Color(255,255,255):
      нопалм
      Ответить
    • VoidEx:
      Один человек так искал контур вокруг клика на векторном чертеже. Рисовал и по пикселям бегал.
      Ответить
    • (float) n / (float) (bmp.width * bmp.height):
      Пиздец в чистом виде
      Ответить
    • Кажется, во внешнем цикле должно быть bmp.width
      Ответить
    • не, во внутреннем. а вообще можно ускорить, раскрыв цикл =)
      Ответить
    • ЧИЛАВЕК-МАЛЕКЛА:
      [quote=#7 Говногость (Позавчера)]
      Кажется, во внешнем цикле должно быть bmp.width[/quote]

      просто очепятка.
      меня смущает использование ++ для неинициализированной переменной int n.
      Ответить

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