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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
makakas2ruls
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 49
#1

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

14.04.2013, 14:03. Просмотров 448. Ответов 0
Метки нет (Все метки)

Здраствуйте ! Перейду к делу .
есть задание -Родительский класс , представляющий собой вектор на плоскости, заданный координатами, с методами нахождения модуля вектора и вывода координат его начала и конца .Дочерний класс представляющий вектор в трехмерном пространстве с аналогичными методами .Главный класс, одним оператором выводящий на экран координаты начал и концов и модулей двух и трехмерных векторов .

Не получается создать дочерний класс вектор в трехмерном пространстве . Подскажите пожалуста метод решения .
Вот мои нароботки:
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();
        }
 
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 14:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос 3д вектор на плоскости (C++):

Разработать класс, описывающий вектор на плоскости - C++
1. «Работа с классами. Объявление классов, наследование». На языке С++ разработать класс, описывающий вектор на плоскости. Реализовать...

Написать класс "вектор на плоскости" заданный в системе декартовых координат - C++
Разработать класс, набор методов (конструктор, деструктор и указаны методы) для программной модели заданного объекта. Описание объекта и...

Наследование: Определить класс vector2 как вектор на плоскости. Определить для него операции и функции - C++
Уже который час мучаюсь не выходит помогите пожалуйста Определить класс vector2 как вектор на плоскости с данными x и y....

Класс "вектор" с конструкторами, позволяющими создать нулевой вектор и вектор с произвольным числом элементов - C++
Привет! Задача следующая. Нужно реализовать класс "вектор" с конструкторами, которые позволяют создать нулевой вектор и вектор с...

Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы - C++
Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы. Безопасный вектор определяет переменные нижний и верхний...

матрица на вектор, вроде правильно, а вектор на матрицу? посмотрите пожалуйста? - C++
#include <iostream> #include <iomanip> #include <cstdlib> #include <ctime> using namespace std; int main() { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2013, 14:03
Привет! Вот еще темы с ответами:

Есть квадратная матрица А порядка n и вектор b с n элементами. Получить вектор Аb. - C++
Привет. Не могу разобратся, вот задание: Есть квадратная матрица А порядка n и вектор b с n элементами. Получить вектор Аb.

Почему матрица на вектор умножается быстрее чем вектор на матрицу? - C++
Почему матрица на вектор умножается быстрее чем вектор на матрицу?

Создать иерархию классов вектор(longint) и безопасный вектор с проверкой выхода за пределы - C++
Помогите не знаю как сделать! Создать иерархию классов вектор(longint) и безопасный вектор с проверкой выхода за пределы. Безопасный...

Вектор с неизвестным количеством чисел преобразовать в другой вектор, где числа будут стоять по возрастанию - C++
Вектор с неизвестным количеством чисел нужно превратить в другой вектор, где числа будут стоять по возрастанию. Мне код не столько нужен,...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru