|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.09.2010, 17:35 | #1 | |
Пользователь
Регистрация: 25.10.2009
Сообщений: 75
|
Алгоритм пересекает ли окружность отрезок. Как он работает?
Цитата:
2)как работают последние 6 строк перед "}" (не могу нарисовать графично чтобы понять как ето работает) 3)хочу перевести ето на дельфи, но не знаю : return ... pавносильно begin result:=... ; exit; end; 4) 2.0f, 4.0f -? Зарание спасибо. |
|
24.09.2010, 18:27 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Код:
2. сам толком не понял всю эту геометрию, по крайней мере, при беглом просмотре 3. насколько я знаю, более-менее равносильно. Разве что с той разницей, что после первого вызова return функция завершается вне зависимости от того, есть ли дальнейший код или другие return Код:
В Delphi для дублирования функционала множества return'ов придется использовать связки if-else (в данном случае это не составить проблем) 4. 2.0f, 4.0f - литералы с плавающей точкой типа float. Если бы было просто 2 и 4 - это были бы целые литералы, 2.0 и 4.0 - тоже литералы с плавающей точкой, но (по умолчанию) типа double. Добавление символа f в литерал с плавающей точкой сообщает, что он имеет тип float.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
24.09.2010, 18:52 | #3 |
Пользователь
Регистрация: 25.10.2009
Сообщений: 75
|
Спасибо Гром.
Когда считал етот алгоритм на бумаге то 2.0f считал за 2(значит верно считал ). Нераскрытым остается только пункт 2 |
29.09.2010, 18:48 | #4 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,515
|
не проверял но похоже что использован следующий алгоритм
r^2 = x^2 + y^2 //уравнение окружности с центом точке координат y =k*x +m //уравнение прямой на которой лежит отрезок отсюда r^2 = x^2 +( k*x +m )^2 далее проверяем есть ли корни у данного уравнения (пересечение прямой и окружности) и находятся ли они на нашем отрезке. P,S, точнее использовано уравнение прямой проходящей через две заданные точки далее подстановка, решение, проверка.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 29.09.2010 в 18:55. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi. Как записать, что родительский класс-перемещающийся отрезок? | Kurai | Помощь студентам | 0 | 28.04.2010 21:23 |
Как нарисовать отрезок. | deadh5n1 | Помощь студентам | 1 | 20.04.2010 23:24 |
Как вращать отрезок | stscolt | Помощь студентам | 2 | 11.09.2009 23:26 |
как отсортировать массив под данный отрезок и как минимум и максимум из него найти | SIEGER | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 20.11.2008 08:58 |