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

Определить, лежат ли точки на одной прямой - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 5.00
Ксения Стэп
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 24
11.12.2010, 11:52     Определить, лежат ли точки на одной прямой #1
ВСЕМ ПРИВЕТ!!!!!!!!ПОМОГИТЕ КТО-НИБУДЬ СПРАВИТЬСЯ С ЗАДАЧЕЙ НА С++.рЕШИТЕ ПОЖАЛУЙСТА ВОТ УСЛОВИЕ- "Заданы три точки на плоскости: M с координатами (x1,y1), L с координатами
(x2,y2) и H с координатами (x3,y3). Определите, лежат ли они на одной
прямой. При отрицательном ответе найти площадь и периметр треугольника
MLH."
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2010, 11:52     Определить, лежат ли точки на одной прямой
Посмотрите здесь:

Определить, будут ли точки расположены на одной прямой C++
Определить будут ли заданные три точки расположены на одной прямой C++
C++ Определить, лежат ли три точки A, B, C на одной прямой. Если нет, найти угол ABC
Лежат ли точки на одной прямой и вычислить угол C++
C++ Определить расположены ли точки на одной прямой
Три точки заданы координатами. Определить, лежат ли они на одной прямой C++
Определить лежат ли две точки в одной координатной четверти C++
Лежат ли точки в одной плоскости? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
by_frost
 Аватар для by_frost
4 / 4 / 0
Регистрация: 25.04.2011
Сообщений: 12
28.04.2011, 00:07     Определить, лежат ли точки на одной прямой #2
C++
1
2
3
4
5
6
7
8
9
bool onOneLine (float x1,x2,x3,y1,y2,y3)
{
 double d1,d2,d3;
 d1=pow(pow((x1-x2),2)+pow((y1-y2),2),1.0/2.0);//ml длина
 d2=pow(pow((x1-x3),2)+pow((y1-y3),2),1.0/2.0);//mh длина
 d3=pow(pow((x2-x3),2)+pow((y2-y3),2),1.0/2.0);//lh длина
 if (d1+d2==d3 || d1+d3==d2 || d2+d3==d1 || ) return(false);
 else return(true);
}
вернет false если точки лежат на одной прямой. Периметр найдешь сложив d1,d2,d3.Площадь:
p=(d1+d2+d3)/2;
s=pow((p*(p-d1)*(p-d2)*(p-d3),1.0/2/0);

Добавлено через 3 часа 47 минут
или вот так:
(b.x-a.x)*(b.y-c.y)-(b.y-a.y)*(b.x-c.x)=nCheck
Значение nCheck = 0, если точка b лежит на прямой, проходящей через точки a и c.
nCheck > 0, если точка b находится справа от прямой.
nCheck < 0, если точка b находится слева от прямой (на рисунке точка B').
Yandex
Объявления
28.04.2011, 00:07     Определить, лежат ли точки на одной прямой
Ответ Создать тему
Опции темы

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