Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Точка пересечиния двух прямых (http://www.flasher.ru/forum/showthread.php?t=88198)

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

Цитата:

Сообщение от BigDan
Задача:найти точку пересечения 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

Цитата:

Сообщение от miramax
Ага , известный прикол :)
Две прямые пересекаются в пространстве, если они лежат на одной плоскости

Две параллельные прямые, лежащие на одной плоскости, пересекутся? :)

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

etc 20.11.2006 23:19

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

FlexBuilder 20.11.2006 23:58

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

BigDan 21.11.2006 19:18

Цитата:

Сообщение от __etc
Ещё раз настоятельно рекомендую прочитать раздел по линейной алгебре.

О чём именно почитать?

etc 21.11.2006 19:34

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

BigDan 21.11.2006 19:37

Цитата:

Сообщение от __etc
О матрицах преобразований (я уже всё забыл, поэтому точно не скажу).

Ты все забыл, а я впервые об этом слышу:)

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 тоже не всю сам писал.


Часовой пояс GMT +4, время: 19:49.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.