Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
KostenBlock
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 42
1

Класс для объектов-векторов, задаваемых координатами концов в трехмерном пространстве

19.03.2015, 19:57. Просмотров 1228. Ответов 1
Метки нет (Все метки)

Составить описание класса для объектов-векторов,задаваемых координатами концов в трехмерном пространстве.
Обеспечить сложения и вычитания векторов с получение нового вектора(суммы и разности), вычисления скалярного произведения двух векторов , длины вектора, косинус угла между векторами.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2015, 19:57
Ответы с готовыми решениями:

Составить описание класса для объектов-векторов,задаваемых координатами их концов в трехмерном пространстве
Составить описание класса для объектов-векторов,задаваемых координатами их...

Составить описание класса для объектов-векторов, задаваемых координатами концов в трехмерном пространстве.
Помогите пожалуйста с лабами из Павловской!!очень-очень прошу!! 3...

Составить описание класса для объектов-векторов,задаваемых координатами концов в трехмерном пространстве
Составить описание класса для объектов-векторов,задаваемых координатами концов...

Составить описание класса для вектора, заданного координатами его концов в трехмерном пространстве
Составить описание класса для вектора, заданного координатами его концов в...

Составить описание класса для вектора, заданного координатами его концов в трехмерном пространстве
Составить описание класса для вектора, заданного координатами его концов в...

1
ViterAlex
6459 / 3629 / 1484
Регистрация: 11.02.2013
Сообщений: 7,979
Завершенные тесты: 3
19.03.2015, 22:08 2
Лучший ответ Сообщение было отмечено KostenBlock как решение

Решение

Кликните здесь для просмотра всего текста
C#
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
namespace GeometryObjects {
    class Vector3D {
 
        public float i { get; private set; }
        public float j { get; private set; }
        public float k { get; private set; }
 
        public float Lenght {
            get {
                return i * i + j * j + k * k;
            }
        }
        /// <summary>
        /// Создание вектора по конечным точкам
        /// </summary>
        /// <param name="start">Координата начала вектора</param>
        /// <param name="end">Координата конца вектора</param>
        public Vector3D(Point3D start, Point3D end) {
            /// Сразу переходим к базисному представлению векторов
            /// для упрощения расчётов. Тем более, что в математике
            /// имеют роль не конкретные координаты вектора, а длины
            /// его проекций на оси координат
            i = end.X - start.X;
            j = end.Y - start.Y;
            k = end.Z - start.Z;
        }
        /// <summary>
        /// Создание вектора по проекциям
        /// </summary>
        public Vector3D(float i, float j, float k) {
            this.i = i;
            this.j = j;
            this.k = k;
        }
 
        public float DotProduct(Vector3D v) {
            return i * v.i + j * v.j + k * v.k;
        }
 
        public float Cos(Vector3D v) {
            return DotProduct(v) / (Lenght * v.Lenght);
        }
        /// <summary>
        /// Сложение векторов
        /// </summary>
        public static Vector3D operator +(Vector3D v1, Vector3D v2) {
            return new Vector3D(v1.i + v2.i, v1.j + v2.j, v1.k + v2.k);
        }
        /// <summary>
        /// Вычитание векторов
        /// </summary>
        public static Vector3D operator -(Vector3D v1, Vector3D v2) {
            return v1 + (-1f) * v2;
        }
        /// <summary>
        /// Векторное произведение
        /// </summary>
        public static Vector3D operator *(Vector3D v1, Vector3D v2) {
            return new Vector3D(v1.j * v2.k - v1.k * v2.j, v1.k * v2.i - v1.i * v2.k, v1.i * v2.j - v1.j * v2.i);
 
        }
        /// <summary>
        /// Умножение вектора на число
        /// </summary>
        public static Vector3D operator *(float num, Vector3D v1) {
            return new Vector3D(v1.i * num, v1.j * num, v1.k * num);
        }
        public override string ToString() {
            string si = i == 0 ? string.Empty : i.ToString();
            string sj = j == 0 ? string.Empty : (j < 0 ? j.ToString() + "j" : "+" + j.ToString() + "j");
            string sk = k == 0 ? string.Empty : (k < 0 ? k.ToString() + "k" : "+" + k.ToString() + "k");
            return string.Format("{0}{1}{2}", si, sj, sk);
        }
    }
    /// <summary>
    /// Структура, описывающая точку в трёхмерном пространстве
    /// </summary>
    struct Point3D {
        public float X;
        public float Y;
        public float Z;
    }
}

Использование:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using GeometryObjects;
namespace ConsoleApplication1 {
    class Program {
        static void Main(string[] args) {
            Vector3D v = new Vector3D(1, 0, -5.3f);
            Vector3D v1 = new Vector3D(new Point3D(1, 2, 3), new Point3D(10, -15, 24));
            Console.WriteLine("v = {0}", v);
            Console.WriteLine("v1 = {0}", v1);
            Console.WriteLine("Векторное произведение = {0}", v * v1);
            Console.WriteLine("Скалярное произведение = {0}", v.DotProduct(v1));
            Console.WriteLine("Длина вектора v = {0}", v.Lenght);
            Console.WriteLine("Длина вектора v1 = {0}", v1.Lenght);
            Console.WriteLine("Косинус угла между векторами = {0}", v.Cos(v1));
            Console.Read();
        }
    }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2015, 22:08

Составить описание класса для вектора, заданного его координатами в трехмерном пространстве
Разрабатываемый класс должен содержать следующие элементы: скрытые и открытые...

Как описать класс векторов в пространстве
Описать класс Vector3 векторов в пространстве. Определить в нем: •...

Заданы координаты концов двух векторов, выходящих из начала координат. Найти длины этих векторов
Заданы координаты концов двух векторов, выходящих из начала координат. Найти...


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

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

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