Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Alexander Dyachenko                  2:5064/7.67    02 Dec 2001  15:06:28
 To : Dmitriy Grachev
 Subject : Help me!!!
 -------------------------------------------------------------------------------- 
 
 
 DG> блин и обьяснит мне кто-нибудь ясно и доходчиво, как считать нормаль к
 DG> плоскости, а то все учебники по геометрии далеко в прошлом...
 
  Берёшь на плоскости 3 точки (например, вершины треугольного полигона), 
 строишь по ним 2 вектора:
  точки A(Ax, Ay, Az), B(Bx, By, Bz) и C(Cx, Cy, Cz) => векторы:
  BA(Bx-Ax, By-Ay, Bz-Az)
  BC(Bx-Cx, By-Cy, Bz-Cz).
  Далее делаем векторное произведение BAxBC и, в результате, получаем ещё 
 один вектор N(Nx, Ny, Nz)- нормаль! 
  Векторное произведение считается так:
  
    | i   j   k |    Nx=BAy*BCz-BAz*BCy
  N=|BAx BAy BAz| => Ny=-(BAx*BCz-BAz*BCx)
    |BCx BCy BCz|    Nz=BAx*BCy-BAy*BCx
 
  Hо!!! Предчувствуя твой следующий вопрос, скажу, что нормаль может 
 смотреть в две стороны и если тебе она нужна для удаления невидимых 
 поверхностей то вот отрывок из DD3D:
 
  Отдельный вопрос - как считать нормали к граням. Точнее, как выбрать 
 одну из двух нормалей, которая будет смотреть из объекта. Обычно эта 
 проблема решается еще на этапе построения 3D моделей - например, пакет 3D 
 Studio записывает вершины граней в порядке A-B-C так, чтобы векторное
 произведение BA*CA и было нормалью. Еще один способ - выбрать внутренную 
 точку для объекта (либо вручную, либо взять его центр тяжести, либо еще
 как-нибудь - методов может быть придумано сколько угодно) и использовать 
 ее: если для этой точки функция видимости положительна, то есть грань якобы
 видна, то надо поменять знак nx, ny и nz. 
 mailto: das2001@freemail.ru                      Жди меня и я вернусь! *:)*
 --- FIPS/2000
  * Origin: Сегодня вам не завтра, и уж тем более не вчера! (2:5064/7.67)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Help me!!!   Dmitriy Grachev   01 Dec 2001 22:57:52 
 Help me!!!   Alexander Dyachenko   02 Dec 2001 15:06:28 
 Re: Help me!!!   Dmitry Kalinin   02 Dec 2001 18:54:06 
Архивное /ru.algorithms/28553c0a0b34.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional