| TarasBer |
8.11.2009 15:43
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Собсна задача такая. Есть трёхмерный вектор v. Найти векторы v1 и v2, которые перпендикулярны v и друг другу, и имеют ту же длину, что и v. На плоскости аналогичная задача элементарна - вектору (x, y) сопоставляется (-y, x), сопоставление корректно и для нулевой длины. В трёхмерном пространстве такой красивой формулы нету - в топологии есть известная "теорема о причёсывании ежа", говорящая о том, что на поверхности чётномерной сферы не существует ненулевого непрерывного векторного поля. По сути v/abs(v) - точка на двухмерной сфере, v1 и v2 - касательные векторы в точке v. Нам как раз нужно ненулевое векторное поле. Непрерывной зависимости тут не построить, ну и ладно. Вопрос в том, чтобы найти v1 и v2 наиболее оптимальным способом. Вот моё решение "в лоб", мне оно не нравится:
-------------------- |
![]() ![]() |
| AruNimotsi |
20.11.2009 12:15
Сообщение
#2
|
![]() мозгоклюй ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Юра Репутация: 5 |
Не думал как оно будет сложно в программном коде и насколько подойдет .. но суть следующая
1. Приводим начало координат в исходную точку вектора 2. Проецируем вектор на любую плоскость - например XY 3. В плоскости XY строим перпендикуляр к проекции он и будет первым вектором PS/ честно говоря программер я не очень и расшифровать приведенный код не смог (в смысле не понял как оно работает), так-что извините если повторился Сообщение отредактировано: AruNimotsi - 20.11.2009 12:18 -------------------- Иногда ответ ближе чем то место где мы его ищем..
|
| TarasBer |
21.11.2009 22:59
Сообщение
#3
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Не думал как оно будет сложно в программном коде и насколько подойдет .. но суть следующая 1. Приводим начало координат в исходную точку вектора Все векторы и так считаются от нуля. Цитата 2. Проецируем вектор на любую плоскость - например XY А если это вектор (0, 0, 1)? Что делать? Опять разбирать эти случаи? А ещё вектор может быть (0.000000001, 0, 10000000), такой тоже не рекомендуется проецировать на XY. Цитата 3. В плоскости XY строим перпендикуляр к проекции он и будет первым вектором Собсна, именно так у меня первый вектор и ищется, с разбором случаев и с нормированием. Слишком прямолинейно и некрасиво. -------------------- |
TarasBer Дан вектор в R3. Найти 2 перпендикулярных ему, тоже длины. 8.11.2009 15:43
Lapp Вот моё решение "в лоб", мне оно не нрав... 15.11.2009 14:27
TarasBer
А чем конкретно оно тебе не нравится?
Слишком пр... 16.11.2009 0:24![]() ![]() |
|
Текстовая версия | 3.11.2025 17:31 |