Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

пересечение луча и отрезка

501
07 мая 2005 года
hell_admin
110 / / 02.10.2004
Здрасте все,
Такая вот функция нужна...пересечение луча и отрезка, заданных двумя точками.. у луча просто начало и точка лежащая где то на луче, ну а отрезок соотвессно по двум концам... а у меня че та туго с геометрией никак не получается написать, мож у кого есть... в нете не нашел, если будет на С++ то ваще круто, но если че то и просто алгоритм сойдет.
Зарание спасибо.
443
07 мая 2005 года
REmindER
292 / / 23.03.2003
если целочисленно, то можно, в общем, так:

Код:
формулы:
                   __         __  __
          ((y1-y0)*x1+(x0-x1)*y1)*x0

xA = x0 + --------------------------
                 __ __ __ __
                 y0*x1-y1*x0



          __
          y1

yA = y1 + -- * (xA - x1)
          __
          x1


хотя тут много чего-то умножений... как видно, представлены точки начал отрезков и их вектора. ошибка деления на ноль выйдет тогда, когда оба отрезка будут параллельны (вектора y0 = y1 = 0 или х0 = х1 = 0), а так, для большей точности можно выразить yA с учетом xA, подставив xA в формулу yA
443
07 мая 2005 года
REmindER
292 / / 23.03.2003
[QUOTE]Originally posted by REmindER
вот:

Код:
1)              __         __  __
Fnum = ((y1-y0)*x1+(x0-x1)*y1)*x0
       __ __ __ __
Fden = y0*x1-y1*x0

2) тогда:
                              __
          ((x0-x1)*Fden+Fnum)*y1

yA = y1 + ----------------------
                      __
                 Fden*x1

вот тут-то и стоит обратить внимание на вектор x1. следует, по видимому, перед вычислениями отбирать тот отрезок, у кторого этот параметр не равен нулю. если формулу выразить явно, получится, по моему, 7, а не 8 умножений.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог