Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нормаль к плоскости, по трем точкам 
V
    Опции темы
DragonFire
Дата 9.12.2006, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Вобщем вот в чем задача: 
у нас есть 3 точки, образующие плоскость. Необходимо найти коордаты вектора нормали к этой плоскости в общем случае - тоесть не в конкретной точке а вообще.

Суть в том что у нас есть 3 координаты вектора нормали и мы можем приложить этот вектор к любой точки плоскости и получится вертор нормали.

Извините, язык может быть кривой, но задача вроде как несложная, просто я это только начал в институте проходить. Знаю уравнение плоскости Ax+By+Cz+D=0, знаю как определители считаются, а алгоритм придумать сам не могу)) Направьте на путь истинный.  smile 




--------------------
PM MAIL ICQ   Вверх
Sartorius
Дата 9.12.2006, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 1
Всего: 37



 n =[AB , BC] (для точек A B и C)
ЗЫ AB, BC - вектора. [, ] векторное произведение

Это сообщение отредактировал(а) Sartorius - 9.12.2006, 17:55
PM MAIL ICQ   Вверх
DragonFire
Дата 9.12.2006, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Верторное произведение векторов AB и BC?

А как это в координатах считается? 
Так чтоли:
             | i       j        k     |
AB*BC=|  AB.x AB.y AB.z | 
             | BC.x BC.y BC.z |
и отсюда находим искомые i,j,k равные i=N.x j=N.y k=N.z
так?


--------------------
PM MAIL ICQ   Вверх
Dottik
Дата 9.12.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 13.10.2006
Где: Ukraine

Репутация: 1
Всего: 2



PM MAIL   Вверх
Sartorius
Дата 9.12.2006, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 1
Всего: 37



DragonFire, да, определитель правильный
PM MAIL ICQ   Вверх
DragonFire
Дата 9.12.2006, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Dottik, по-моему через это уравнение можно только проверить, является вектор нормалью к плоскости, но не найти его координаты, а до второго способа не догнал сходу))

Sartorius, ну а i, j и k и будут искомыми координатами вектора нормали так?


--------------------
PM MAIL ICQ   Вверх
Dottik
Дата 9.12.2006, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 13.10.2006
Где: Ukraine

Репутация: 1
Всего: 2



Ax + By + Cz + D = 0 

( A/sqrt(A*A+B*B+C*C), B/sqrt(A*A+B*B+C*C), C/sqrt(A*A+B*B+C*C)) чем не вектор нормали?
PM MAIL   Вверх
DragonFire
Дата 9.12.2006, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Dottik, круто, толко не понял откуда это берется, а разобраться то хочется))
Ведь на сколько я понял, x,y,z это не координаты вектора нормали и почему нужно делать на длинну вектора?

Тогда уж Nx=A Ny=B Nz=C из статьи той, и будут равны:
Код

A = y1 (z2 - z3) + y2 (z3 - z1) + y3 (z1 - z2) 
B = z1 (x2 - x3) + z2 (x3 - x1) + z3 (x1 - x2) 
C = x1 (y2 - y3) + x2 (y3 - y1) + x3 (y1 - y2) 



--------------------
PM MAIL ICQ   Вверх
Dottik
Дата 9.12.2006, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 13.10.2006
Где: Ukraine

Репутация: 1
Всего: 2



Цитата

Тогда уж Nx=A Ny=B Nz=C из статьи той, и будут равны:

 это для уравнения плоскости которая проходит через 3 точки. Делить на длину - чтобы получить еденичный вектор нормали (обычно его используют).
PM MAIL   Вверх
DragonFire
Дата 9.12.2006, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Совсем запустался)) про длинну понял, все круто и умно очень)) 
Только я не понял, чему у тебя равны A,B и C в этой формуле:
Код

( A/sqrt(A*A+B*B+C*C), B/sqrt(A*A+B*B+C*C), C/sqrt(A*A+B*B+C*C)) чем не вектор нормали? 

У меня же есть как раз координаты 3х точек, задающьх плоскость.


--------------------
PM MAIL ICQ   Вверх
DragonFire
Дата 9.12.2006, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Так я и не получил простого вразумительного ответа.


--------------------
PM MAIL ICQ   Вверх
Aloha
Дата 9.12.2006, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
**


Профиль
Группа: Участник Клуба
Сообщений: 351
Регистрация: 14.5.2006

Репутация: 4
Всего: 165



DragonFire

user posted image

Это сообщение отредактировал(а) Aloha - 5.1.2007, 00:03

Присоединённый файл ( Кол-во скачиваний: 84 )
Присоединённый файл  _953774.gif 39,12 Kb
PM   Вверх
DragonFire
Дата 9.12.2006, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Aloha, вот спасибо!!!
Достойный итог всей прошедшей теме... Обо всем этом было сказано, но теперь все на ладони. Я думаю многим эта тема поможет в будущем) 


--------------------
PM MAIL ICQ   Вверх
DragonFire
Дата 17.2.2007, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



тема закрыта


--------------------
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0915 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.