Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 4
1

Определение точки пересечения двух отрезков

24.02.2018, 18:56. Показов 885. Ответов 1
Метки нет (Все метки)

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
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
struct line
{
    double x0, y0, x1, y1;
};
 
bool coll_1d(double a0, double a1, double b0, double b1)
{
    if (a0 > a1) swap(a0, a1); 
    if (b0 > b1) swap(b0, b1); 
    if (fabs(b1 - a0) > fabs((a1 - a0) + (b1 - b0))) 
        return false; 
    return true;
}
 
bool prov(line a, line b)
{
    if (!coll_1d(a.x0, a.x1, b.x0, b.x1)) 
        return false;
    if (!coll_1d(a.y0, a.y1, b.y0, b.y1))
        return false;
    return true; //или правду
}
 
int main()
{
 
    line a = { 3,3,5,6 }; 
    line b = { 5,6,3,3 };
 
    cout << (prov(a, b) ? "Yes" : "No") << endl; 
 
    system("pause");
    return(0);
}

Объясните с математической точки зрения, что выполняет данная функция.

C++
1
2
3
4
5
6
7
bool coll_1d(double a0, double a1, double b0, double b1)
{
    if (a0 > a1) swap(a0, a1);
    if (b0 > b1) swap(b0, b1); 
    if (fabs(b1 - a0) > fabs((a1 - a0) + (b1 - b0)))
        return false; 
    return true;
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2018, 18:56
Ответы с готовыми решениями:

Координаты точки пересечения двух отрезков
День добрый уважаемые читатели форума. Разбираю задачу по расчету Координаты точки пересечения двух...

Найти точку пересечения двух отрезков
как найти точку пересечения двух отрезков, если даны координаты начала и конца обеих

Даны четыре точки на числовой оси A, B, C И D. найти длину пересечения отрезков AB И CD
Я только начал изучать, не могли бы подсказать метод построения решения этой задачи

Найти точки пересечения двух прямоугольников
Всем привет, очень интересует метод решения следующей задачи: Имеется 2...

1
Эксперт C
26093 / 16280 / 3497
Регистрация: 24.12.2010
Сообщений: 35,687
24.02.2018, 19:07 2
Цитата Сообщение от MotyaN Посмотреть сообщение
Объясните с математической точки зрения, что выполняет данная функция
Не очень понимаю. С математической точки зрения уравнение ОТРЕЗКА AB определяется так X = At + (1-t)B, 0<= t <= 1 (уравнение векторное, то есть его надо расписать по координатам. CD: X = Cs + (1-s)D, 0<=s <= 1
Приравниваете. Решаете систему относительно t, s. Проверяете неравенства.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2018, 19:07

Как найти точки пересечения двух синусоид?
Есть две синусоиды вида: y = a + b*sin(c*x + d) a,b,c,d - постоянные. x - в заданном интервале,...

Нахождение точки пересечения двух прямых в пространстве
Здрасьте. Имеется два отрезка в пространстве и координаты их концов. Как найти точку пересечения...

Формула нахождения точки пересечения двух прямых
q all, need help! формула работает нормально вроде, всё окей. Но как узнать где эта точка...

Найти точки пересечения двух линий заданных функциями
Определить, пересекаются ли линии y = ax4 + bx3 + cx2 + dx + f и y = bx3 + mx2 + dx + p. Если...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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