1. JavaScript / Говнокод #16554

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (d_min < 0) {
                                // push out by normal * |d_min|
                                x = x - d_min * T[t_min];
                                y = y - d_min * T[t_min + 1];
                                y = z - d_min * T[t_min + 2];

    Сука, блядь, пиздец, два часа убил.

    Запостил: makc3d, 18 Августа 2014

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

    • Где здесь ГК, makc3d?
      Ответить
      • 5 строка.
        ГК вроде и нет, просто опечатка
        Ответить
        • А, теперь вижу.
          Ответить
        • надо писать -= кмк, было бы меньше буковок и легче заметить описку.
          Ответить
          • Надо использовать абстракцию вектора.
            Ответить
            • увы, т к это джаваскрипт, абстракция так и останется абстракцией и не скомпилится в код побыстрее.
              Ответить
              • > увы, т к это джаваскрипт, абстракция так и останется абстракцией и не скомпилится в код побыстрее.
                Что ты этим хотел сказать? Что после введения понятия вектора код начнёт тормозить?
                Ты тестил производительность сырых переменных vs какой-нибудь мутабельный вектор на базе Float32Array?
                Подозреваю, что нет.
                Ответить
                • я даже не знаю что такое мутабельный вектор, у меня первая ассоциация с табельным оружием. в 3js, который тут для отрисовки, есть Vector3, который определён как
                  THREE.Vector3 = function ( x, y, z ) {
                  this.x = x || 0;
                  this.y = y || 0;
                  this.z = z || 0;
                  };
                  т е там никакой Float32Array базы нет, например.
                  Ответить
                  • Замечательно, THREE.Vector3 и есть мутабельный вектор. В нём внезапно есть нужные функции multiplyScalar и sub.
                    // t, coords :: THREE.Vector3
                    t.set(T[t_min], T[t_min + 1], T[t_min + 2]);
                    t.multiplyScalar(d_min);
                    coords.sub(t);
                    Кмк, в таком коде ошибиться довольно сложно. А влияние на производительность мерить надо, а не измышлять.
                    Ответить
                    • ну как бы, это конкретное место где-то глубоко в цикле, который считает одежду. тэ это треугольники, с которыми сталкивается тыща частиц тьму тьмущую раз за кадр. так что решил даже не пытаться юзать эти абстракции. не, я против них ничего не имею, на самом деле, чтобы кубики гонять по маусмуву оно самое то.
                      Ответить
    • t_len
      Ответить

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