PDA

Просмотр полной версии : Точка пересечиния двух прямых


BigDan
18.11.2006, 22:22
Задача:найти точку пересечения 2 прямых
Известно: т.А(x,y,z-известны) и т.Б(x,y,z-известны) - одна прямая, т.В(x,y,z-известны) и т.Г(x,y,z-известны) - вторая прямая.

Как я решал: записывал уранения прямых в кординатах XY, потом отлично находил кординаты X и Y точки пересечения, потом записывал уравнения этих прямых в кординатах XZ, пытался найти Z-кординату точки пресечения, но расчёты оказывались неверными.

Что подскажите?

miramax
18.11.2006, 22:30
Задача:найти точку пересечения 2 прямых
Известно: т.А(x,y,z-известны) и т.Б(x,y,z-известны) - одна прямая, т.В(x,y,z-известны) и т.Г(x,y,z-известны) - вторая прямая.

Как я решал: записывал уранения прямых в кординатах XY, потом отлично находил кординаты X и Y точки пересечения, потом записывал уравнения этих прямых в кординатах XZ, пытался найти Z-кординату точки пресечения, но расчёты оказывались неверными.

Что подскажите?
Ага , известный прикол :)
Ты решил задачу для отрезков на плоскости ?
Две прямые пересекаются в пространстве, если они лежат на одной плоскости

BigDan
18.11.2006, 22:44
Они лежат в одной плоскости.

FlexBuilder
18.11.2006, 22:48
Строим базис на веторах АБ, АВ, и смотрим координату точки Г в этом базисе - если z = 0 - значит прямые лежат в одной плоскости - далее решение тривиально.

BigDan
18.11.2006, 23:00
Проблема вот в чем: я не могу правильно найти Z-кординату точки пресечения.

FlexBuilder
18.11.2006, 23:59
если A + alpha * (Б - A) = B + betta * (Г - В), что находится элементарно, то очевидно нужный.z = A.z + alpha * (Б.z - A.z)

BigDan
19.11.2006, 15:43
Как сделать через уравнение вида:
ax+by+c=0

BigDan
19.11.2006, 21:14
Возник еще один вопрос:
У меня есть триугольная пирамида и построеное в ней сечение. Как мне определить в каком порядке строить 4 стороны пирамиды и сечение?(если не соблюдать порядок, то стороны будут вылазить одна на другую).

FourSide
20.11.2006, 15:46
Ага , известный прикол :)
Две прямые пересекаются в пространстве, если они лежат на одной плоскости
Две параллельные прямые, лежащие на одной плоскости, пересекутся? :)

BigDan
20.11.2006, 20:13
У _etc'a в исходнике 'bricks' определяется параметр visible для каждой стороны, как его узнать?

etc
20.11.2006, 20:44
Насколько я помню (а это было на первом курсе), для вычесления координат вектора нормали требуется перемножение двух матриц. Так вот я вычислял координату z, если она отрицательна — поверхность невидима (в зависимости от того, какая сторона является лицевой — был доп. параметр, отвечающий за это).
Вот эта строчка:
vis = (o2.x*o2.depth-o1.x*o1.depth)*(o3.y*o3.depth-o1.y*o1.depth)-(o3.x*o3.depth-o1.x*o1.depth)*(o2.y*o2.depth-o1.y*o1.depth);
Глубину можно опустить в принципе, если не используется перспектива.

BigDan
20.11.2006, 22:22
Как боротся с этим?(сечение вылазит на стороны)
Project (www.denius.hut2.ru/Project.swf)

etc
20.11.2006, 23:19
Ты думаешь, по внешнему виду можно понять, в чём косяк?
Ещё раз настоятельно рекомендую прочитать раздел по линейной алгебре.

FlexBuilder
20.11.2006, 23:58
да уж, линейная алгебра - это самое оно для флешера

BigDan
21.11.2006, 19:18
Ещё раз настоятельно рекомендую прочитать раздел по линейной алгебре.
О чём именно почитать?

etc
21.11.2006, 19:34
О матрицах преобразований (я уже всё забыл, поэтому точно не скажу).

BigDan
21.11.2006, 19:37
О матрицах преобразований (я уже всё забыл, поэтому точно не скажу).
Ты все забыл, а я впервые об этом слышу:)

FlexBuilder
21.11.2006, 21:02
надо почитать про вектора, матрицы, матричные уравнения, (в т.ч. про обратные матрицы), веркторную запись классических задач аналит.геометрии (проекция точки на отрезок, плоскость, расстояние между прямыми и др.) что-то еще в этом духе (я тоже за десять лет забыл, что там еще было :) )

etc
21.11.2006, 21:09
Да-да, линейка тут не нужна, линал надо ковырять :)

Kikasso
22.11.2006, 02:34
BigDan, посмотрите здесь. http://27bobs.com/ Там лежит в свободном доступе библиотека Flash3D. Все написано в те времена, когда регистр букв не учитывался, простым и ясным языком прототипов, но работает вполне себе спокойно. Там как раз матрицы, шматрицы, кривые безье и прочие радости жизни. ( про регистр букв - это намек, надо будет одно слово переименовать чтоб все заработало ). Кстати, математику Todd Yard тоже не всю сам писал.