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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
ЛехаКрылов
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 11
#1

Разработать алгоритм определяющий взаимное расположение двух прямых в пространстве помогите пожалуйста - C++

26.12.2011, 02:08. Просмотров 1466. Ответов 7
Метки нет (Все метки)

помогите пожалуйста завтра зачет сижу над задачами ничего не успеваю!!!!!
Разработать алгоритм определяющий взаимное расположение двух прямых в пространстве. прямые задать с помощью структур. результат вывести на экран.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2011, 02:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разработать алгоритм определяющий взаимное расположение двух прямых в пространстве помогите пожалуйста (C++):

Разработать алгоритм определяющий взаимное расположение двух прямых в пространстве - C++
Разработать алгоритм определяющий взаимное расположение двух прямых в пространстве. прямые задать с помощью структур. результат вывести на...

Даны две прямые в пространстве.Определить их взаимное расположение. Решении в С++ и алгоритм(блок схему) - C++
Не могу решить. помогите , очень надо.:( Даны две прямые в пространстве.Определить их взаимное расположение. Добавлено через 29...

Взаимное расположение прямых - C++
Люди.ПЛЗ помогите::wall::help: Даны вещественные числа A1, B1, C1, А, В, С. Выяснить взаимное расположение прямых A1*x+B1*y=C1 и...

Определить взаимное расположение прямых - C++
В общем есть точки x1 x2 x3 x4 y1 y2 y3 y4, которые определяют координаты двух точек одной прямой и двух точек другой прямой. Нужно узнать...

Выяснить взаимное расположение прямых на плоскости - C++
Выяснить взаимное расположение прямых А1*х+В1*у=С1 и А*х+В*у=С. Если прямые пересекаются, напечатать точки пересечения. (помогите ребят,...

Даны две прямые в пространстве.Определить их взаимное расположение - C++
Даны две прямые в пространстве.Определить их взаимное расположение. Решить предложенную задачу (использовать операторов: if, switch) ...

7
darkknight2008
62 / 62 / 6
Регистрация: 16.10.2011
Сообщений: 200
26.12.2011, 02:34 #2
Подскажу, ответ кроется в параметрическом уравнении прямой. Щас попытаюсь че-нить набросать...
1
ЛехаКрылов
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 11
26.12.2011, 02:37  [ТС] #3
спасибо помоги пожалуйста сейчас тоже сам помучаю
0
darkknight2008
62 / 62 / 6
Регистрация: 16.10.2011
Сообщений: 200
26.12.2011, 02:40 #4
Точку пересечения назодить требуется?

Добавлено через 49 секунд
Как задаются прямые? 1) Две точки 2) Точка и направляющий вектор?
1
ЛехаКрылов
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 11
26.12.2011, 03:06  [ТС] #5
две точки

Добавлено через 56 секунд
точку пересечения нет не требуется только как они расположены

Добавлено через 17 минут
ну куда ты помоги пожалуйста!!!!
0
darkknight2008
62 / 62 / 6
Регистрация: 16.10.2011
Сообщений: 200
26.12.2011, 03:28 #6
Башка уже плохо соображает. Как не крути, тебе нужно отталкивать от алгоритма по поиску точки пересечения двух прямых в пространстве.
0
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
26.12.2011, 03:52 #7
хз, может и неверно)

если структура вроде такой:
C
1
2
3
4
5
6
7
struct line {
   point p1,p2;
}
 
struct point {
   double x,y,z
}
алгоритм вроде такого:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
line l1,l2; // наши линии
....
//задаем координаты и все такое
....
point t1=l1.p1-l1.p2;      //вычитаем координаты одной точки прямой из другой
point t2=l2.p1-l2.p2;     
 
eps=0.0000001     //точность вычисления для double
if ( !((t1.x<eps) ||
       (t1.y<eps) ||
       (t1.z<eps)) ) return;    //если все разницы равны нулю, то задали отрезок двумя одинаковыми точками, т.е. ошибка ввода
if ( !((t2.x<eps) ||
       (t2.y<eps) ||
       (t2.z<eps)) ) return; 
 
if ( (abs(t1.x/t1.y-t2.x/t2.y)<eps) ||
     (abs(t1.y/t1.z-t2.y/t2.z)<eps) ||
     (abs(t1.x/t1.z-t2.x/t2.z)<eps) ) return;    // если хоть одно из частных dx/dy, dy/dz или dx/dz совпало для обеих прямых, то пересечение есть
 
//иначе нет.
Разумеется синтаксис додумать.
вроде даже проверку на деление на ноль делать не надо, т.к. в double просто запишется +inf или -inf, если такое произойдет, и логика не нарушится.
0
darkknight2008
62 / 62 / 6
Регистрация: 16.10.2011
Сообщений: 200
26.12.2011, 04:04 #8
Есть недочет. Взаимное расположение, т.е. параллельны или совпадают или персекаются или скрещиваются.

Добавлено через 7 минут
if ( (abs(t1.x/t1.y-t2.x/t2.y)<eps) ||
(abs(t1.y/t1.z-t2.y/t2.z)<eps) ||
(abs(t1.x/t1.z-t2.x/t2.z)<eps) ) return;
Если соображалка не сдохла, то из этого можно сделать вывод только, что прямые пересекаются или скрещиваются.
0
26.12.2011, 04:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2011, 04:04
Привет! Вот еще темы с ответами:

Заданы координаты вершин двух прямоугольников. Определить их взаимное расположение - C++
Заданы координаты вершин двух прямоугольников. Определить их взаимное расположение: пересекаются, не пересекаются, касаются, принадлежит. ...

Взаимное расположение линий - C++
Здравствуйте! Не могу реализовать математически взаимное расположение линий. Сама программа заключается в следующем: написать программу...

Взаимное расположение треугольников - C++
Не могу понять как можно вычислить если угол одного треугольника касается стороны другого треугольника, или угол вообще внутри треугольника...

Определить взаимное расположение треугольников - C++
Здравствуйте, дорогие форумчане. ------------------------------------ Помогите решить задачу, пожалуйста. Задание: Напишите...


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

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

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