Си диез / Говнокод #19422 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
var pts = new Vector3[vCount];
var r = new Random();

for (var i = 0; i < pts.Length; i++)
pts[i] = new Vector3(r.Next(-10000, 10000), r.Next(-600, 600), r.Next(-10000, 10000)) * 0.05f;
/*for (var i = 0; i < pts.Length; i++)
for (var j = 0; j < pts.Length; j++)
if (pts[i].X > pts[j].X)
{
var tmp = pts[i];
pts[i] = pts[j];
pts[j] = tmp;
}*/
var vertices = new VertexPositionColor[vCount];
var indices = new int[vCount * 6];
//*
for (var i = 0; i < vCount; i++)
{
vertices[i] = new VertexPositionColor(pts[i], new Color(new Vector3(r.Next(-100000, 100000), r.Next(-100000, 100000), r.Next(-100000, 100000)) * 0.00001f));
indices[i * 6] = i;
indices[i * 6 + 3] = i;
var minDist = new float[] { 100000000, 100000000, 100000000 };
var minId = new int[] { 0, 0, 0 };
for (var j = 0; j < vCount; j++)
{
if (j == i) continue;
var dist = Vector3.DistanceSquared(pts[i], pts[j]);
if (dist < minDist[0])
{
minDist[2] = minDist[1]; minId[2] = minId[1];
minDist[1] = minDist[0]; minId[1] = minId[0];
minDist[0] = dist; minId[0] = j;
}
else if (dist < minDist[1])
{
minDist[2] = minDist[1]; minId[2] = minId[1];
minDist[1] = dist; minId[1] = j;
}
else if (dist < minDist[2])
{
minDist[2] = dist;
minId[2] = j;
}
}
indices[i * 6 + 1] = minId[0];
indices[i * 6 + 2] = minId[1];
indices[i * 6 + 4] = minId[1];
indices[i * 6 + 5] = minId[2];
}//*/

Антон, 20 лет.

Особенно вставило

indices[i * 6 + 1] = minId[0];
indices[i * 6 + 2] = minId[1];
indices[i * 6 + 4] = minId[1];
indices[i * 6 + 5] = minId[2];

Запостил: d_fomenok d_fomenok, (Updated )

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

  • Этот человек ещё говорит что он бог кода и его код идеален
    Ответить
  • > indices[i * 6 + 1] = minId[0];
    Да ладно, чел тут не особо виноват. Создание геометрии кодом всегда выглядит как говно, как ты его не напиши... Поэтому часто проще нарисовать нужную херню в блендере, экспортнуть её в какой-нибудь obj и не париться.
    Ответить
    • Он любитель писать велосипеды. Это не его путь -- не париться
      Ответить
  • Хм, а чё, если взять месиво точек, найти для каждой 3 ближайших и составить из каждой такой четвёрки пару треугольников, то получится что-то кошерное и красивое? Имхо, выйдет только странная дырявая каша из треугольников ;(

    Вроде как нормальную оболочку построить намного сложнее...
    Ответить
    • Я тоже такое юзал, пока про хоткей, который блок комментит, не узнал.
      Ответить
      • а прикол в другом. Когда софт глубоко тестовый и там комент на коменте, четко видно какая из закомментированных строк относится к какому из блоков.

        Я вообще иногда пишу
        /*//=====================
        что-то в таком духе
        //*///====================
        Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8