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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ вычисление дня недели по дате http://www.cyberforum.ru/cpp-beginners/thread208316.html
здравствуйте. как можно вычислить день недели по дате? слышала про формулу Зеллера, но там мало что понятного Спасибо!
C++ C++ Циклы. Линейное программирование. Ничего не получается с задачками по C++ Зачет во вторник. Решите пожалуйста. 1. Дано натуральное число n. Вычислить. http://www.cyberforum.ru/attachment.php?attachmentid=53492&stc=1&d=1292052517 2. Найти наименьший номер члена последовательности, для которого выполняется условие |an-an-1|< ε. Вывести на экран этот номер и все элементы ai , где i=1,2,3…,n.... http://www.cyberforum.ru/cpp-beginners/thread208308.html
C++ Найти минимальный элемент из максимальных элементов строк двухмерного массива целых чисел
Помогите решить задачу:Найти минимальный элемент из максимальных элементов строк двухмерного массива целых чисел. Вывести на экран номер строки и столбца такого элемента.
Найти наибольший и наименьший элемент заштрихованной части матрицы C++
Помогите, пожалуйста. Если можно, с комментариями. Дано натуральное число n. Сформировать произвольную матрицу размерностью nxn. Найти наибольший и наименьший элемент заштрихованной части.
C++ Множество точек.Найти множество треугльники http://www.cyberforum.ru/cpp-beginners/thread208296.html
ДАно 3n точек на плоскости , причем не какие три не лежат на одной прямой. Построить множество треугольников с вершинами в этих точках так что бы не какие 2 треугольника не пересекались и не содержали друг друга.
C++ я ввожу любое число он его конвертирвует в бинарное я ввожу любое число он его конвертирвует в бинарное подробнее

Показать сообщение отдельно
by_frost
 Аватар для by_frost
4 / 4 / 0
Регистрация: 25.04.2011
Сообщений: 12
28.04.2011, 00:07     Определить, лежат ли точки на одной прямой
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').
 
Текущее время: 02:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru