Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.08.2007, 14:35
ViLkiN ViLkiN вне форума
Прохожий
 
Регистрация: 08.08.2007
Сообщения: 32
Репутация: 10
Вопрос принадлежит или нет?

нужна функция, определяющая, принадлежит точка с координатами х,у лучу или нет. Луч задан координатой х0, у0 и азимутом а.
помогите плз, нигде не нашёл(( сам не придумал

Последний раз редактировалось ViLkiN, 27.08.2007 в 15:52.
Ответить с цитированием
  #2  
Старый 27.08.2007, 15:57
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Не принадлежит с вероятностью 99,9999% (если не задать точность)
Ответить с цитированием
  #3  
Старый 27.08.2007, 17:27
ViLkiN ViLkiN вне форума
Прохожий
 
Регистрация: 08.08.2007
Сообщения: 32
Репутация: 10
По умолчанию

дело в том, что луч строится внутри многоугольника, я нахожу точки пересечения прямой (содер. этот луч) с его сторонами, многоугольник вогнутый -> таких точек может быть несколько(больше двух), нужно отбросить те точки, которые не принадлежат лучу. Т.е. по сути нужно найти координату пересечения луча с отрезком. Да и с окружностью тоже)). Мне кажется, что легче найти сначала точки пересечения с прямой, а потом выкинуть те, которые не "лучевые".
Ответить с цитированием
  #4  
Старый 28.08.2007, 14:59
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Цитата:
нужно найти координату пересечения луча с отрезком. Да и с окружностью тоже
1. Задать луч
2. Задать отрезок
3. Задать окружность
4. Найти первое пересечение
5. Найти второе пересечение.
Так? Я, правда, не соображаю, где многоугольник, откуда взялась окружность. Надо бы поподробнее разжевать.
Ответить с цитированием
  #5  
Старый 29.08.2007, 10:16
ViLkiN ViLkiN вне форума
Прохожий
 
Регистрация: 08.08.2007
Сообщения: 32
Репутация: 10
По умолчанию

забудем про окружность. Нужно найти координату пересечения луча с многоугольником, вершина луча находится внутри многоугольника, многоуг. выпуклый.
Ответить с цитированием
  #6  
Старый 29.08.2007, 10:57
dissident dissident вне форума
Прохожий
 
Регистрация: 25.07.2007
Сообщения: 8
Репутация: 10
По умолчанию

Угол от чего откладывается? Если в обычной декартовой системе координат, и угол откладывается от оси x, то вот способ:
(y-y0)/(x-x0) - тангенс угла наклона, бери от этого арктангенс, сравнивай с углом a, совпали по величине и знаку - точка на луче.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:54.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter