Форум программистов, компьютерный форум CyberForum.ru

3д вектор на плоскости - C++

Восстановить пароль Регистрация
 
makakas2ruls
 Аватар для makakas2ruls
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 49
14.04.2013, 14:03     3д вектор на плоскости #1
Здраствуйте ! Перейду к делу .
есть задание -Родительский класс , представляющий собой вектор на плоскости, заданный координатами, с методами нахождения модуля вектора и вывода координат его начала и конца .Дочерний класс представляющий вектор в трехмерном пространстве с аналогичными методами .Главный класс, одним оператором выводящий на экран координаты начал и концов и модулей двух и трехмерных векторов .

Не получается создать дочерний класс вектор в трехмерном пространстве . Подскажите пожалуста метод решения .
Вот мои нароботки:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
* Write a description of class vector here.
* 
* @author Шестопал А.В. 
* @version 2
*/
public class vector
{
private double x1, y1, x2, y2; 
/**
* Constructor for objects of class vector
*/
public vector()
{
// initialise instance variables
x1 = 10;
y1 = 0;
x2 = 20;
y2 = 0;
}
 
/**
* An example of a method - replace this comment with your own
* 
* @param y a sample parameter for a method
* @return the sum of x and y 
*/
public double sampleMethod()
{
double i;
i=Math.sqrt(Math.pow(y1 - x1, 2.0) + Math.pow(y2 - x2, 2.0)) ; 
return (i); 
}
public double sampleMethod2() 
{
double x,y;
x=x1+y1;
y=x2+y2;
return (y,x); 
} 
}
public class VectorTricks {
    public static void main(String[] args) {
        Vector v1 = new Vector(1, 2, 3);
        Vector v2 = new Vector(1, 2, 3);
        System.out.println(v1.lengthModuleVector());
        System.out.println(v1.lengthModuleVector(v2));
        System.out.println(v1.addVector(v2));
        System.out.println(v1.minusVector(v2));
    }
    static class Vector {
        private double x, y, z;
 
        public Vector() {
            setX(0);
            setY(0);
            setZ(0);
        }
        public Vector(double x, double y, double z) {
            this.setX(x);
            this.setY(y);
            this.setZ(z);
        }
        public Vector(Vector v) {
            this.setX(v.getX());
            this.setY(v.getY());
            this.setZ(v.getZ());
        }
        // длина модуль вектора
        public double lengthModuleVector() {
            return Math.sqrt(x * x + y * y + z * z);
        }
 
        // сумма векторов
        public Vector addVector(Vector v) {
            return new Vector(getX() + v.getX(), getY() + v.getY(), getZ() + v.getZ());
        }
        // разность векторов
        public Vector minusVector(Vector v) {
            return new Vector(getX() - v.getX(), getY() - v.getY(), getZ() - v.getZ());
        }
        // длина ( модуль ) двух векторов
        public double lengthModuleVector(Vector v) {
            return Math.sqrt((y * v.getZ() - z * v.getY()) * (y * v.getZ() - z * v.getY()) + (x * v.getZ() - z * v.getY())
                    * (x * v.getZ() - z * v.getY()) + (x * v.getY() - y * v.getX()));
        }
        public double getX() {
            return x;
        }
        public void setX(double x) {
            this.x = x;
        }
        public double getY() {
            return y;
        }
 
        public void setY(double y) {
            this.y = y;
        }
        public double getZ() {
            return z;
        }
        public void setZ(double z) {
            this.z = z;
        }
 
        @Override
        public int hashCode() {
            final int prime = 31;
            int result = 1;
            long temp;
            temp = Double.doubleToLongBits(x);
            result = prime * result + (int) (temp ^ (temp >>> 32));
            temp = Double.doubleToLongBits(y);
            result = prime * result + (int) (temp ^ (temp >>> 32));
            temp = Double.doubleToLongBits(z);
            result = prime * result + (int) (temp ^ (temp >>> 32));
            return result;
        }
        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            Vector other = (Vector) obj;
            if (Double.doubleToLongBits(x) != Double.doubleToLongBits(other.x))
                return false;
            if (Double.doubleToLongBits(y) != Double.doubleToLongBits(other.y))
                return false;
            if (Double.doubleToLongBits(z) != Double.doubleToLongBits(other.z))
                return false;
            return true;
        }
 
        @Override
        public String toString() {
            StringBuilder builder = new StringBuilder();
            builder.append("Vector [x=");
            builder.append(x);
            builder.append(", y=");
            builder.append(y);
            builder.append(", z=");
            builder.append(z);
            builder.append("]");
            return builder.toString();
        }
 
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 14:03     3д вектор на плоскости
Посмотрите здесь:

C++ Создать иерархию классов вектор(longint) и безопасный вектор с проверкой выхода за пределы
C++ Написать класс "вектор на плоскости" заданный в системе декартовых координат
контейнер -вектор вложеный в вектор C++
Наследование: Определить класс vector2 как вектор на плоскости. Определить для него операции и функции C++
C++ задан вектор С, который состоит из 12 действительных чисел. Сформировать вектор D, нечетные элементы которого есть целая часть нечетных
Считать вектор из файла, записать вектор в файл C++
C++ Вектор ссылок и вектор указателей
Вектор с неизвестным количеством чисел преобразовать в другой вектор, где числа будут стоять по возрастанию C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 02:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru