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

Найти точку пересечения двух отрезков - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти произведение всех делителей введенного числа n http://www.cyberforum.ru/cpp-beginners/thread177771.html
Найти произведение всех делителей введенного числа n. C использованием while! помогите плиз)
C++ Ошибка в программе Вот код: /*--------------------------------------------------------------- БИБЛИОТЕКИ */ #include <iostream> #include <fstream> #include <vector> #include <math.h> /*------------------------------------------------------------------ ДЕФАЙНЫ */ http://www.cyberforum.ru/cpp-beginners/thread177769.html
C++ функция обмена переменных
помогите написать функцию которая меняет переменные местами, но не через swap, а через новую переменную,очень нужно. срочно.
Нужно сгенерировать элементы массива случайным образом с помощью функции rand C++
Нужно сгенерировать элементы случайным образом с помощью функции rand. Определить индексы максимального элемента матрицы. Вычислить произведение элементов над главной диагональю. Я сделал но не rand-ом можете сделать rand-омом?=) #pragma argsused #include <iostream.h> using namespace std; int main() { const int n = 5; int a; cout<<"Enter matrix 5x5:\n";
C++ Вычисление косинуса http://www.cyberforum.ru/cpp-beginners/thread177749.html
: Всем добрового время суток, я пока только начинаю изучать C++ и у меня поэтому много вопросов. Дана программа которая используя разложения косинуса, вычисляет его различные значения x: #include <iostream> using namespace std; const int N = 100; int main() { double x, q, s = 0; int n; cout << "Enter x = ";
C++ Рандомизация Необходимо случайным образом выбрать число от 0 до 0.9 включительно, и записать в a"" с шагом в 0.1. Что бы итоге "а" могло быть = 0 или 0.1 или 0.2 или 0.3 или 0.4 или 0.5 или 0.6 или 0.7 или 0.8 или 0.9 Как это реализовать? подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.10.2010, 07:36     Найти точку пересечения двух отрезков
По имеющимся точкам выводим параметрические уравнения обоих отрезков:
C++
1
2
x=a1.x+t1*(b1.x-a1.x)
y=a1.y+t1*(b1.y-a1.y)
и
C++
1
2
x=a2.x+t2*(b2.x-a2.x)
y=a2.y+t2*(b2.y-a2.y)
, объединяем их в систему:
C++
1
2
a1.x+t1*(b1.x-a1.x)=a2.x+t2*(b2.x-a1.x)
a1.y+t1*(b1.y-a1.y)=a2.y+t2*(b2.y-a2.y)
, переносим параметры влево, а свободные члены вправо:
C++
1
2
t1*(b1.x-a1.x)+t2*(a2.x-b1.x)=a2.x-a1.x
t1*(b1.y-a1.y)+t2*(a2.y-b1.y)=a2.y-a1.y
, решаем относительно t1, t2, если (t1>=0)&(t1<=1)&(t2>=0)&(t2<=1), то отрезки пресекаются, иначе не пересекаются. Если точки заданы не на плоскости, а в пространстве, то по имеющимся точкам выводим параметрические уравнения обоих отрезков:
C++
1
2
3
x=a1.x+t1*(b1.x-a1.x)
y=a1.y+t1*(b1.y-a1.y)
z=a1.z+t1*(b1.z-a1.z)
и
C++
1
2
3
x=a2.x+t2*(b2.x-a2.x)
y=a2.y+t2*(b2.y-a2.y)
z=a2.z+t2*(b2.z-a2.z)
, объединяем их в переопределённую систему из трёх уравнений с двумя неизвестными:
C++
1
2
3
a1.x+t1*(b1.x-a1.x)=a2.x+t2*(b2.x-a1.x)
a1.y+t1*(b1.y-a1.y)=a2.y+t2*(b2.y-a2.y)
a1.z+t1*(b1.z-a1.z)=a2.z+t2*(b2.z-a2.z)
, переносим параметры влево, а свободные члены вправо:
C++
1
2
3
t1*(b1.x-a1.x)+t2*(a2.x-b1.x)=a2.x-a1.x
t1*(b1.y-a1.y)+t2*(a2.y-b1.y)=a2.y-a1.y
t1*(b1.z-a1.z)+t2*(a2.z-b1.z)=a2.z-a1.z
, решаем относительно t1, t2, если (t1>=0)&(t1<=1)&(t2>=0)&(t2<=1), то отрезки пресекаются, иначе не пересекаются.
 
Текущее время: 12:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru