Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 7
1

Описать класс треугольник через координаты трех точек

04.12.2013, 13:22. Просмотров 3551. Ответов 9
Метки нет (Все метки)


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
84
85
class Triangle
    {
           // поля
        double Ax;
        double Ay;
        double Bx;
        double By;
        double Cx;
        double Cy;
        double ab;
        double ac;
        double bc;
        // свойства
        public double AX
        {
            get { return Ax; }
            set { Ax = value; }
        }
        public double AY
        {
            get { return Ay; }
            set { Ay = value; }
        }
             public double BX
        {
            get { return Bx; }
            set { Bx = value; }
        }
        public double BY
        {
            get { return By; }
            set { By = value; }
        }
             public double CX
        {
            get { return Cx; }
            set { Cx = value; }
        }
        public double CY
        {
            get { return Cy; }
            set { Cy = value; }
        }
 
        // конструктор
        public Triangle(double x1, double y1, double x2, double y2, double x3, double y3)
        {
            AX = x1;
            AY = y1;
            BX = x2;
            BY = y2;
            CX = x3;
            CY = y3;
        }
    
        // длины сторон
        public double Length(double x1,double y1,double x2,double y2)
        {
            return Math.Sqrt(Math.Pow(x1 - x2, 2) + Math.Pow(y1 - y2, 2));
        }
       
 
        // существование треугольника
        public bool Exist()
        {
            return (ab.Length() + bc.Length() > ac.Length()) && (bc.Length() + ac.Length() > ab.Length()) && (ab.Length() + ac.Length() > bc.Length());
        }
        //углы треугольника
        public double Ygl()
        {
            return ((Math.Pow(ab, 2) + Math.Pow(ac, 2) - Math.Pow(bc, 2)) / (2 * ab * ac));
        }
        //периметр
        public double Per()
        {
            return +bc.Length() + ac.Length();
        }
        
        // площадь
        public double Square()
        {
            double p = this.Per() / 2;
            return Math.Sqrt(p * (p - ab) * (p - bc) * (p - ac));
        }
    }
Помогите исправить ошибку в Exist
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2013, 13:22
Ответы с готовыми решениями:

Создать класс треугольник. Члены класса - координаты 3-х точек
Создать класс треугольник. Члены класса - координаты 3-х точек. Предусмотреть в классе методы...

Определить образуют ли треугольник координаты трех точек
Ввести числа , которые являются значениями коор-динат трех точек на плоскости. Определить,...

Найти координаты трёх точек, которые образуют треугольник с наименьшей площадью
На плоскости заданы своими координатами N точек, заданные своими координатами. Найти координаты...

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

9
8117 / 4388 / 1724
Регистрация: 11.02.2013
Сообщений: 9,350
04.12.2013, 13:23 2
Треугольник существует, если три точки не лежат на одной прямой. Следовательно, нужно взять уравнение прямой, проходящей через две любые вершины и проверить, что третья вершина не лежит на этой прямой. Примеры на форуме есть.
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 7
04.12.2013, 13:29  [ТС] 3
а можно ссылочку на пример?плыыыыз
0
8117 / 4388 / 1724
Регистрация: 11.02.2013
Сообщений: 9,350
04.12.2013, 13:44 4
Определить, принадлежит ли точка отрезку
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 7
04.12.2013, 15:45  [ТС] 5
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
 class Triangle
    {
           // поля
        double Ax;
        double Ay;
        double Bx;
        double By;
        double Cx;
        double Cy;
       
        // свойства
        public double AX
        {
            get { return Ax; }
            set { Ax = value; }
        }
        public double AY
        {
            get { return Ay; }
            set { Ay = value; }
        }
             public double BX
        {
            get { return Bx; }
            set { Bx = value; }
        }
        public double BY
        {
            get { return By; }
            set { By = value; }
        }
             public double CX
        {
            get { return Cx; }
            set { Cx = value; }
        }
        public double CY
        {
            get { return Cy; }
            set { Cy = value; }
        }
 
        // конструктор
        public Triangle(double x1, double y1, double x2, double y2, double x3, double y3)
        {
            AX = x1;
            AY = y1;
            BX = x2;
            BY = y2;
            CX = x3;
            CY = y3;
        }
        
        // длины сторон
        public double Length(double x1, double y1, double x2, double y2)
        {
            return Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));
        }
 
 
        // существование треугольника
        public bool Exist()
        {
            return !(Ax * By - Ax * Cy - Ay * Bx + By * Cx + Bx * Cy - By * Cx == 0);
        }
        //углы треугольника
        public double Ygl()
        {
            return ((Math.Pow(Length(Ax, Bx, Ay, By), 2) + Math.Pow(Length(Ax, Cx, Ay, Cy), 2) - Math.Pow(Length(Bx, Cx, By, Cy), 2)) / (2 * Length(Ax, Bx, Ay, By) * Length(Ax, Cx, Ay, Cy)));
        }
        //периметр
        public double Per()
        {
            return Length(Ax, Bx, Ay, By) + Length(Bx, Cx, By, Cy) + Length(Ax, Cx, Ay, Cy);
        }
 
        // площадь
        public double Square()
        {
            double p = this.Per() / 2;
            return Math.Sqrt(p * (p - Length(Ax, Bx, Ay, By)) * (p - Length(Bx, Cx, By, Cy)) * (p - Length(Ax, Cx, Ay, Cy)));
        }
    }
Ладно,с существованием разобралась,теперь у меня проблема с углом. Не могу написать универсальную формулу для нахождения угла
0
536 / 537 / 181
Регистрация: 16.03.2012
Сообщений: 1,160
Записей в блоге: 2
04.12.2013, 16:01 6
Цитата Сообщение от ViterAlex Посмотреть сообщение
Треугольник существует, если три точки не лежат на одной прямой. Следовательно, нужно взять уравнение прямой, проходящей через две любые вершины и проверить, что третья вершина не лежит на этой прямой. Примеры на форуме есть.
Как по мне то лучше реализовать класс Точка с полями координатами, после чего класс треугольник - полями будет три объекта класса Точка, и уже в самом классе проверять существование треугольника, допустим делать это в конструкторе класса, если невозможно создать объект - выбросить исключение.
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 7
04.12.2013, 16:03  [ТС] 7
Нее,у меня в задание:создать класс Треугольник,члены класса- координаты трех точек. Как же все таки записать формулу угла?
0
8117 / 4388 / 1724
Регистрация: 11.02.2013
Сообщений: 9,350
04.12.2013, 20:06 8
Теорема косинусов или синусов (я предпочитаю второе)
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 7
04.12.2013, 20:45  [ТС] 9
ну я так и сделала,только как сделать так чтоб она стала универсальной, и когда в program.sc я буду обращаться к этому методу он находил все углы по этой формуле
C#
1
2
3
4
5
//углы треугольника
 public double Ygl()
 {
  return ((Math.Pow(Length(Ax, Bx, Ay, By), 2) + Math.Pow(Length(Ax, Cx, Ay, Cy), 2) - Math.Pow(Length(Bx, Cx, By, Cy), 2)) / (2 * Length(Ax, Bx, Ay, By) * Length(Ax, Cx, Ay, Cy)));
}
0
8117 / 4388 / 1724
Регистрация: 11.02.2013
Сообщений: 9,350
06.12.2013, 08:20 10
Цитата Сообщение от DrRiot Посмотреть сообщение
Не могу написать универсальную формулу для нахождения угла
У треугольника три угла. Чтобы найти все, нужно знать хотя бы два
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2013, 08:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Процедура позволяет рисовать треугольник по координатам вершин трёх точек. Нарисовать прямоугольный треугольник, и равнобедренный
помогите пожалуйста решить, срочно нужно на экзамен...жду вашей помощи) 1)Процедура позволяет...

Построить треугольник с вершинами в трех из данных n точек, содержащий внутри как можно больше данных точек
доброго времени суток, помогите пожалуйста с программой. Построить треугольник с вершинами в трех...

Координаты трех точек треугольника
Пусть даны координаты трех точек на плоскости. Если они могут быть вершинами РАВНОСТОРОННЕГО...

Найти координаты трех точек
Найти координаты трех точек. Подскажите как найти координаты трех точек? Изначально даны...

Ввести координаты трех точек и ...
Ввести координаты трех точек и по ним определить треугольник ето или нет если да то...

Ввести координаты трех точек на плоскости
Всем привет. Нужна помощь с задачкой. Вводится координаты трех точек на плоскости. Определить,...


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

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

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