![]() |
|
Модераторы: volvo877, Snowy, MetalFan |
![]()
|
|
| Kraz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 5.12.2006 Репутация: нет Всего: нет |
Даны произвольный треугольник и окружность. Координаты вершин треугольника и центра окружности вводятся пользователем. Дать ответ на вопрос: "можно ли вписать в данный треугольник окружность с центром в заданной точке?"
Геометрия "говорит" : Чтобы вписать в треугольник окружность, центр окружности должен попасть на пересечение биссектрис треугольника. Как найти координаты точки пересечения биссектрис логически, если известны координаты вершин треугольника? |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
можно, конечно, и искать точку пересечения биссектрис
но здесь этого не требуется достаточно проверить удовлетворяет ли введённая точка этому условию так что проверяем OAB=OAC and OBA=OBC (имеются в виду углы) -------------------- qqq |
|||
|
||||
| Kraz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 5.12.2006 Репутация: нет Всего: нет |
maxim1000, а как можно это реализовать?
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
?
посчитать углы? ну например, смотрим скалярное произведение, делим на модули векторов и берём arccos... или через векторное произведение и arcsin -------------------- qqq |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
пусть есть 2 вектора a,b
угол между ними можно считать так: arccos( (a,b)/(|a|*|b|) ) (a,b)=ax*bx+ay*by |a|=sqrt(ax*ax+ay*ay) или через векторное произведение: arcsin( |[a,b]|/(|a|*|b|) ) |[a,b]|=|ax*by-ay*bx| -------------------- qqq |
|||
|
||||
| Kraz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 5.12.2006 Репутация: нет Всего: нет |
Постоянно вылетает ошибка 207: Invalid floating point operation |
|||
|
||||
| TaNK |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
может ты присваиваешь int'y float, посмотри! -------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
||||
|
|||||
| Kraz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 5.12.2006 Репутация: нет Всего: нет |
Мм.. Нет, ничего такого я не делаю.. |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Это здесь не при чем... Компилятор этого не пропустит еще в Compile-Time, 207 может быть по одной из след. причин: либо под корнем отрицательное число, либо некорректный параметр ArcTan ... Это сообщение отредактировал(а) volvo877 - 11.12.2006, 15:59 |
|||
|
||||
| Kraz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 5.12.2006 Репутация: нет Всего: нет |
Там всё по модулю.. откуда там отрицательному числу взяться =\ |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Везде? В последней строке тоже по модулю? А в знаменателе на 0 не проверял? Надо бы проверять...
|
|||
|
||||
| Kraz |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 5.12.2006 Репутация: нет Всего: нет |
|
||||
|
|||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
а что, возникают сложности с определением, на какой строке возникла ошибка?
-------------------- qqq |
|||
|
||||
| Kraz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 5.12.2006 Репутация: нет Всего: нет |
Это сообщение отредактировал(а) Kraz - 11.12.2006, 17:19 |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
ну так значит, надо:
1. найти набор данных, который приводит к ошибке 2. локализовать строку, которая глючит именно для этого набора 3. проанализировать данные и строку и понять, в чём дело -------------------- qqq |
|||
|
||||
![]()
|
| Правила форума "Delphi" | |
|
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |