Jawa / Говнокод #28600 Ссылка на оригинал

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
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
import java.lang.Math;
import java.util.Random;

public class MyVector {

    public static MyVector[] generateVectors(int N) {
        MyVector[] generated_vectors = new MyVector[N];
        for (int i = 0; i < N; i++) {
            MyVector vec = new MyVector();
            generated_vectors[i] = vec;
        }
        return generated_vectors;
    }

    public MyVector(double x, double y, double z) {
        this.x = x;
        this.y = y;
        this.z = z;
    }

    public MyVector() {
        final Random random = new Random();
        this.x = random.nextInt();
        this.y = random.nextInt();
        this.z = random.nextInt();
    }

    public double getX() { return this.x; }
    public void setX(double newX) { this.x = newX; }

    public double getY() { return this.y; }
    public void setY(double newY) { this.y = newY; }

    public double getZ() { return this.z; }
    public void setZ(double newZ) { this.z = newZ; }

    public double getLength() {
        return Math.sqrt(Math.pow(this.x, 2) +
                         Math.pow(this.y, 2) +
                         Math.pow(this.z, 2));
    }

    public String toString() {
        StringBuilder representation = new StringBuilder();
        representation.
            append(" { ").
            append(this.x).
            append(" ; ").
            append(this.y).
            append(" ; ").
            append(this.z).
            append(" } ");
        return representation.toString();
    }

    public double scalarProduct(MyVector vec) {
        return (this.getX() * vec.getX() +
                this.getY() * vec.getY() +
                this.getZ() * vec.getZ());
    }

    public MyVector vectorProduct(MyVector vec) {
        MyVector result = new MyVector();
        result.setX(this.getY() * vec.getZ() -
                    this.getZ() * vec.getY());
        result.setY(this.getZ() * vec.getX() -
                    this.getX() * vec.getZ());
        result.setZ(this.getX() * vec.getY() -
                    this.getY() * vec.getX());
        return result;
    }

    public MyVector substract(MyVector vec) {
        MyVector result = new MyVector();
        result.setX(this.getX() - vec.getX());
        result.setY(this.getY() - vec.getY());
        result.setZ(this.getZ() - vec.getZ());
        return result;
    }

    public MyVector add(MyVector vec) {
        MyVector result = new MyVector();
        result.setX(this.getX() + vec.getX());
        result.setY(this.getY() + vec.getY());
        result.setZ(this.getZ() + vec.getZ());
        return result;
    }

    private double x;
    private double y;
    private double z;
}

Что здесь не так?

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

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

  • Ну и кто же может за мной следить?))
    Сайт Российский, все правильно.
    Ответить
  • Нахера
    result.set(X|Y|Z)
    , если можно указать компоненты при инициализации?
    Ответить
  • возьми ломбок, а еще лучше котлин с датаклассами, не сри бойлерплейта, и так в мире говна выши крыши
    Ответить
  • Капля никко тина убивает лошадь
    Ответить
  • А можешь пожалуйстк переписать для вектора в семимерном пространстве?
    Ответить
      • ты имел ввиду в этот файл?
        разнеси на два
        Ответить
        • В Java, кстати, реально можно так разносить класс на несколько файлов, если он слишком большой. С помощью наследования.

          Это, кстати, очень удобно: если знаешь, какой файл последний, то можно его extends и дописать ещё пару методов.

          Получится что-то типа такого:

          MyVector
          MyVectorLast extends MyVector
          MyVectorLast2 extends MyVectorLast
          MyVectorFinalVersion extends MyVectorLast2
          MyVectorWithBugfixes extends MyVectorFinalVersion

          Заодно можно не пользоваться гитом, и так всё ясно когда что редактировалось.
          Ответить

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

Из-за тебя ушел bormand, guest!

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


    8