Форум программистов, компьютерный форум, киберфорум
Геометрия
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Геометрия В 3D пространстве надо поворачивать квадрат по оси X и Y https://www.cyberforum.ru/ geometry/ thread155582.html
В 3D пространстве надо поворачивать квадрат по оси X и Y. Получилось реализовать поворот только по оси X и только Y, а когда начинаю и по той, и по той оси поворачивать - получается параллелограмм. ...
высота пирамиды Геометрия
имеется правильная усеченная 4-х стороння пирамида помогите с решением уж очень давно не общался с геометрией нужно найти высоту AD=DC=CB=BA=16см OMD=OMC=OMB=OMA=25 градусов...
Пересечение двух тел в пространстве Геометрия
Привет всем! У меня есть небольшое увлечение - иногда делаю карты к сетевым 3д бегалкам, конкретнее - quake3 и alien arena. Использую редактор карт GTKRadiant 1.5.0. При создании своей последней...
Геометрия Матрицы перехода... Есть одна система координат и в ней задана плоскость, а на ней двумерная система координат. Как перейти из первой системы во вторую и обратно? https://www.cyberforum.ru/ geometry/ thread148776.html
Геометрия Касательная к двум окружностям https://www.cyberforum.ru/ geometry/ thread147336.html
Даны координаты центров двух окружностей и их радиусы. Необходимо найти координаты точек касания общей касательной к этим окружностям. Помогите пожалуйста
Геометрия построить график и найти корень
дана функция x^2-cos(x^2)=0 и (x-1)^2-0,5e^x=0. хотя бы интервал и корень приблизительно...пожжжжалуйста
Геометрия Полярный угол точки
Точка задана координатами в декартовой системе. Как найти ее полярный угол? Я пользовался этими формулами: q=arctan(y/x); при этом если q<0, то q=q+2*pi. Но при x=0 такая формула не пашет. Можно ли...
Геометрия Нахождение площади фигуры День добрый! Мне нужно найти площадь произвольной фигуры, если быть точной, то площадь пятна радопсина. Функции данной фигуры я не знаю. Помогите... https://www.cyberforum.ru/ geometry/ thread142318.html
Геометрия Найти объем пирамиды https://www.cyberforum.ru/ geometry/ thread141876.html
Вечер добрый!!! Помогите решить эти два задания.
Геометрия Пирамида Здравствуйте. Помогите решить задачу: Даны координаты вершин пеирамиды А1А2А3А4: А1(3;5;4), А2(8;7;4), А3(5;10;4), А4(4;7;8). Найти: длину ребра А1А2; угол между ребрами А1А2 и А1А4; площадь грани... https://www.cyberforum.ru/ geometry/ thread141498.html
11 / 11 / 3
Регистрация: 09.05.2010
Сообщений: 384
04.08.2010, 21:06  [ТС] 0

Точка пересечения двух пространственных прямых?

04.08.2010, 21:06. Просмотров 10659. Ответов 13
Метки (Все метки)

Ответ


Как найти точку пересечения двух пространственных прямых, заданных параметрически? Или установить что её не существует?

Добавлено через 25 минут
Вроде составил какой-то алгоритм... И вроде бы он работает... Хотя может и не всегда...
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
int Two_Line_Intersection(TLine L1, TLine L2, T3DPoint &P)
{
  float a11 = L1.Direction.X;
  float a12 = -L2.Direction.X;
  float a21 = L1.Direction.Y;
  float a22 = -L2.Direction.Y;
  float b1  = L2.StartPoint.X - L1.StartPoint.X;
  float b2  = L2.StartPoint.Y - L1.StartPoint.Y;
  float t1, t2;
  float det = a11*a22-a12*a21;
  if (abs(det) >= EPS2)// if det != 0
  {
   float d1 = b1*a22 - a12*b2;
   float d2 = a11*b2 - a21*b1;
   t1 = d1/det; t2 = d2/det;
   float temp1 = L1.StartPoint.Z + L1.Direction.Z*t1;
   float temp2 = L2.StartPoint.Z + L2.Direction.Z*t2;
   if (abs(temp1-temp2)<EPS2) 
   {
     P.X = L1.StartPoint.X + L1.Direction.X*t1;
     P.Y = L1.StartPoint.Y + L1.Direction.Y*t1;
     P.Z = L1.StartPoint.Z + L1.Direction.Z*t1;
     return 1; // if temp1 = temp2
   }
   return 0;
  }
  a21 = L1.Direction.Z;
  a22 = -L2.Direction.Z;
  b2  = L2.StartPoint.Z - L1.StartPoint.Z;
  det = a11*a22-a12*a21;
  if (abs(det) >= EPS2)
  {
   float d1 = b1*a22 - a12*b2;
   float d2 = a11*b2 - a21*b1;
   t1 = d1/det; t2 = d2/det;
   float temp1 = L1.StartPoint.Y + L1.Direction.Y*t1;
   float temp2 = L2.StartPoint.Y + L2.Direction.Y*t2;
   if (abs(temp1-temp2)<EPS2)
   {
     P.X = L1.StartPoint.X + L1.Direction.X*t1;
     P.Y = L1.StartPoint.Y + L1.Direction.Y*t1;
     P.Z = L1.StartPoint.Z + L1.Direction.Z*t1;
     return 1; // if temp1 = temp2
   }
   return 0;   
  }
  a11 = L1.Direction.Y;
  a12 = -L2.Direction.Y;
  b1  = L2.StartPoint.Y - L1.StartPoint.Y;
  det = a11*a22-a12*a21;
  if (abs(det) >= EPS2)
  {
   float d1 = b1*a22 - a12*b2;
   float d2 = a11*b2 - a21*b1;
   t1 = d1/det; t2 = d2/det;
   float temp1 = L1.StartPoint.X + L1.Direction.X*t1;
   float temp2 = L2.StartPoint.X + L2.Direction.X*t2;
   if (abs(temp1-temp2)<EPS2)
   {
     P.X = L1.StartPoint.X + L1.Direction.X*t1;
     P.Y = L1.StartPoint.Y + L1.Direction.Y*t1;
     P.Z = L1.StartPoint.Z + L1.Direction.Z*t1;
     return 1; // if temp1 = temp2
   }
   return 0;  
  }
  return 0;
}


Вернуться к обсуждению:
Точка пересечения двух пространственных прямых?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.08.2010, 21:06
Готовые ответы и решения:

Точка пересечения двух прямых
Здравствуйте форумчане! да я знаю что такие темы были но у них было конкретно заданы начальные и...

Точка пересечения двух прямых в пространстве
Помогите, пожалуйста, вывести формулу нахождения координат точки пересечения прямых в пространстве....

Точка пересечения прямых
Помогите, пожалуйста, решить некоторые задачи из самостоятельной!Завтра надо уже сдавать! Найти...

Точка пересечения прямых в пространстве
Две прямые задаются координатами начала и конца. Нужно найти точки пересечения. Попробовал...

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