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

структура точки в плоскости - C++

Восстановить пароль Регистрация
 
Artyomdoc
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 58
11.01.2014, 10:06     структура точки в плоскости #1
создать структуру для работы с точками на плоскости. необходимо определить следующее
1)создать точку по координатам
2)вывод точки в виде "(х,у)"
3)найти расстояние между точками
4)найти площадь треугольника заданного тремя точками

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
#include <iostream>
#include <cmath>
using namespace std;
 struct point
 {
 double x;
 double y;
 };
 
point create (double a, double b)
{
 point cr;
 cr.x = a;
 cr.y = b;
 return cr;
}
 
void print (const point &point1)
{   
 cout«"("«point1.x«";"«point1.y«")"«endl;
}
 
double Rasst (const point &point1, const point &point2)
{
 double sum;
 sum=pow((point2.x - point1.x),2)+pow((point2.y - point1.y),2);
 return sqrt(sum);
}
 
 
 
int main()
{
 point p1,p2;
 double a, b, c;
 cout«"Vvedite koordinaty 1 tochki"«endl;
 cin »a»b»c;
 p1 = create(a,b,c);
 
 cout«"Vvedite koordinaty 2 tochki"«endl;
 cin »a»b»c;
 p2 = create(a,b,c);
 
 print(p1);
 print (p2);
 double p;
 cout«"Rastoynie mejdu tochkami"«endl;
 p = Ras(p1,p2);
 cout«p«endl;
 
}

помогите сделать 4)найти площадь треугольника заданного тремя точками

Добавлено через 12 минут
поправка
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
#include <iostream>
#include <cmath>
using namespace std;
 struct point
 {
 double x;
 double y;
 };
 
point create (double a, double b)
{
 point cr;
 cr.x = a;
 cr.y = b;
 return cr;
}
 
void print (const point &point1)
{   
 cout«"("«point1.x«";"«point1.y«")"«endl;
}
 
double Rasst (const point &point1, const point &point2)
{
 double sum;
 sum=pow((point2.x - point1.x),2)+pow((point2.y - point1.y),2);
 return sqrt(sum);
}
 
 
 
int main()
{
 point p1,p2;
 double a, b;
 cout«"Vvedite koordinaty 1 tochki"«endl;
 cin »a»b»c;
 p1 = create(a,b);
 
 cout«"Vvedite koordinaty 2 tochki"«endl;
 cin »a»b;
 p2 = create(a,b);
 
 print(p1);
 print (p2);
 double p;
 cout«"Rastoynie mejdu tochkami"«endl;
 p = Ras(p1,p2);
 cout«p«endl;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2014, 10:06     структура точки в плоскости
Посмотрите здесь:

C++ Координаты точки на плоскости
C++ Точки на плоскости
точки на плоскости C++
C++ Точки на плоскости.
C++ Точки на плоскости
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
genock94
 Аватар для genock94
19 / 19 / 1
Регистрация: 16.11.2012
Сообщений: 348
11.01.2014, 10:32     структура точки в плоскости #2
Artyomdoc, предлагаю использовать формулу Герона:
http://www.kakprosto.ru/kak-124513-k...o-trem-tochkam

Добавлено через 6 минут
S = √(P*(P-AB)*(P-BC)*(P-AC)) = √( P*(P-√((X₁-X₂)² + (Y₁-Y₂)² + (Z₁-Z₂)²))*(P-√((X₂-X₃)² + (Y₂-Y₃)² + (Z₂-Z₃)²))*(P-√((X₁-X₃)² + (Y₁-Y₃)² + (Z₁-Z₃)²)),
где Р = ½*(AB+BC+AC) = ½*(√((X₁-X₂)² + (Y₁-Y₂)² + (Z₁-Z₂)²) + √((X₂-X₃)² + (Y₂-Y₃)² + (Z₂-Z₃)²) + √((X₁-X₃)² + (Y₁-Y₃)² + (Z₁-Z₃)²).

Добавлено через 1 минуту
т.к. вы работаете на плоскости нужно занулить координаты Z у каждой точки.

Добавлено через 1 минуту
таким образом формула становится ГОРАЗДО короче:
S = √(P*(P-AB)*(P-BC)*(P-AC)) = √( P*(P-√((X₁-X₂)² + (Y₁-Y₂)² ))*(P-√((X₂-X₃)² + (Y₂-Y₃)² ))*(P-√((X₁-X₃)² + (Y₁-Y₃)² )),
где Р = ½*(AB+BC+AC) = ½*(√((X₁-X₂)² + (Y₁-Y₂)² ) + √((X₂-X₃)² + (Y₂-Y₃)² ) + √((X₁-X₃)² + (Y₁-Y₃)² ).
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
11.01.2014, 11:19     структура точки в плоскости #3
Можно и проще. Из аналитической геометрии:

http://www.cyberforum.ru/cgi-bin/latex.cgi?{S}_{\Delta } = \frac{1}{2}\begin{vmatrix}{x}_{3}-{x}_{1} & {x}_{2}-{x}_{1} & \\ {y}_{3}-{y}_{1} & {y}_{2}-{y}_{1} & \end{vmatrix} = \frac{1}{2} \cdot ( ({x}_{3}-{x}_{1})\cdot({y}_{2}-{y}_{1}) - ({x}_{2}-{x}_{1})\cdot({y}_{3}-{y}_{1}) )

Если при вычислении получим S=0, то все точки лежат на одной прямой, если получим отрицательное число, то следует взять его модуль.
genock94
 Аватар для genock94
19 / 19 / 1
Регистрация: 16.11.2012
Сообщений: 348
11.01.2014, 14:15     структура точки в плоскости #4
TrueBit, согласен, так красивее.
Yandex
Объявления
11.01.2014, 14:15     структура точки в плоскости
Ответ Создать тему
Опции темы

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