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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить минимальное положительное значение массива http://www.cyberforum.ru/cpp-beginners/thread19559.html
Люди помогите надо решить 2 задачи: 1)Дан массив A размерности N. Определить номер первого положительного значения массива. Использовать функции. 2)Дан массив A размерности N. Определить...
C++ Одномерный массив с Делением Даны Натуральное число n, действительные числа Х1, Х2.....Хn. получить (1+r)/(1+s), где r-сумма всех тех членов последовательности X1,Х2...Хn которые не превосходят 1, а s-сумма членов, больших 1. ... http://www.cyberforum.ru/cpp-beginners/thread19558.html
Помогите откомпилить C++
Не работает функция, которая должна удалять латинские буквы (пусть пока тока маленькие) из тех строк, в которых есть заданная подстрока, заключенная в скобки. char** pp3( char **st,char *k, int...
Объявить прототип функции f1 с 2 аргументами-строками и возвращаемым результатом в виде литерного массива. C++
Доброе все время суток! Прошу помочь, задали задание на Turbo C,так сложилось что не успел сделать да и вообще не все бы и смог самостоятельно сделать!! Задание состоит из небольших...
C++ Нахождение локального минимума матрицы http://www.cyberforum.ru/cpp-beginners/thread19544.html
(Элемент наз. Локальным мин. если он строго меньше всех его соседей) Вопрос заключается в следующем: Я создаю подпрограмму для нахождения локального минимума. Мне приходится его сравнивать со всеми...
C++ Создать класс Money для работы с денежными суммами :help::help:Ребята помогите решить задачку:)Очень срочно нужно)))Буду очень благодарна:-[ Номиналы российских рублей могут принимать значения 1, 2, 5, 10, 50, 100, 500, 1000, 5000. Копейки... подробнее

Показать сообщение отдельно
Roma_F
331 / 246 / 5
Регистрация: 13.12.2009
Сообщений: 589
28.04.2010, 16:26
p0, p1, p2 - искомые точки
epsilon - число близкое к нулю - зависит от точности и размерности координат
C++
1
2
3
4
5
double s = (p1.x - p0.x)*(p2.y - p0.y) - (p2.x - p0.x)*(p1.y - p0.y);
if (fabs(s) < epsilon)
{
    // на одной прямой....
}
Добавлено через 17 минут
продолжение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
else // вычисляем угол
{
    double l1 = hypotl (p0.x - p1.x, p0.y - p1.y);
    double l2 = hypotl (p1.x - p2.x, p1.y - p2.y);
    double l3 = hypotl (p0.x - p2.x, p0.y - p2.y);
    // добавить проверку l1, l2 и l3 на 0
    double p = l1 + l2 + l3;
    double n = (p*0.5)*(p*0.5 - l3)/(l1*l2);
    n = n < 0 ? 0 : n;
    double c = sqrt(n);
    // добавить проверку попадания c в (-1.0, 1.0)
    double alfa = RadToDeg (acos(c)*2.0);   
}
если нет RadToDeg:
alfa = acos(c)*360/M_PI;
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru