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

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

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

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

11.01.2014, 10:06. Просмотров 424. Ответов 3
Метки нет (Все метки)

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

точки на плоскости - C++
очень срочно нужно задачки для зачета(С#)... Задача1: Найти такую точку заданного на плоскости множества точек,сумма расстояний от...

Точки на плоскости - C++
Здравствуйте, как зная координаты четырех точек определить расположены они на одной плоскости или нет?

Точки на плоскости. - C++
Заданы три точки на плоскости: M с координатами (x1,y1), L с координатами (x2,y2) и H с координатами (x3,y3). Определите, лежат ли они на...

Точки на плоскости - C++
Заданы две точки на плоскости. Определить лежат ли они одновременно на осях координат.

Координаты точки на плоскости - C++
Помогите пожалуйста с задачей Даны целочисленные координаты точки на плоскости. Если точка совпадает с началом координат, то вывести 0....

Определение точки в плоскости - C++
Даны две точки на плоскости. Определить «самую левую», «самую правую», «самую верхнюю», «самую нижнюю».

3
genock94
20 / 20 / 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₃)² ).
0
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, то все точки лежат на одной прямой, если получим отрицательное число, то следует взять его модуль.
1
genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348
11.01.2014, 14:15 #4
TrueBit, согласен, так красивее.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2014, 14:15
Привет! Вот еще темы с ответами:

Лежат ли точки в одной плоскости? - C++
На плоскости XOY даны три точки A(x1, y1), B(x2, y2), C(x3, y3). Выяснить, лежат ли они в одной и той же координатной четверти

точки на плоскости в трехмерном пространстве - C++
в общем нужно проверять лежат ли 4 точки(отдельный класс состоящих из трех флоатов) в одной плоскости. Подскажите простой способ, если...

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

Принадлежность точки к заданной плоскости - C++
Определите, принадлежит ли точка A, заданная координатами (x0; y0), части плоскости, ограниченной отрезком оси абсцисс от 0 до и...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
11.01.2014, 14:15
Ответ Создать тему
Опции темы

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