![]() |
|
![]() ![]() ![]() |
|
Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: нет Всего: 6 |
Здравствуйте, уважаемые.
Вот нашел алгоритм. Но он иногда дает деление на ноль. Если х2=х1 или х2=х2, то есть если ДВЕ точки лежат на одной прямой по х. И что? Тогда задача не имеет решения? Фигня какая-то... Не подскажете, как интерпретировать эту ситуацию?
|
|||
|
||||
Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: нет Всего: 6 |
Поправка. Две точки, само собой, всегда лежат на прямой. Я имел в виду ситуацию, когда две точки имеют одинаковые координаты по икс или по игрик. Как тогда понять, можно ли провести окружность через эти три точки?
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
А ты попробуй решить систему аналитически:
3 уравнения, 3 неизвестных... а потом просто подставляй. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
MBo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 5 Всего: 18 |
|
|||
|
||||
Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: нет Всего: 6 |
Akina.
Не силен я ни в алгебре, нив геометрии. Гуманитарий я по образованию. Но вроде я же так и делаю примерно... Только юзаю уже выведнные из этой системы формулы. МВО, а в твоем варианте S ведь тоже может быть равно нулю. И тогда будет тот же крэш, что и у в моем. Или нет? |
|||
|
||||
MBo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 5 Всего: 18 |
> в твоем варианте S ведь тоже может быть равно нулю. И тогда будет тот же крэш, что и у в моем.
Нет. Если три точки лежат на прямой, то это ловится: Result := S <> 0; if Result then begin... |
|||
|
||||
Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: нет Всего: 6 |
Три точки, лежащие на прямой - ловятся и в моем.
А если две? Если, скажем, это равносторонний треугольник, нижняя грань которого паралелльная оси х? И У тебя ведь может быть X10 * Y20 = X20 * Y10? И тогда S=0; Или нет? Добавлено @ 15:52 Не знаю, получится ли изобразить... ИМХО, твой способ, как и мой, сломается на прямоугольном треугольнике, нижний катет которого параллелен ОХ, а правый катет параллелен ОУ. о х1, у1 оо о о о о оооооо х2, у2 х0, у0 х10=х1-х0=х20=х2-х0 у10=у1-у0=у20=у2-у0 X10 * Y20 = X20 * Y10 и тогда S=0 Да, ты это ловишь и не производишь деления, но как посчитать центр и радиус окружность в этом случае? |
|||
|
||||
MBo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 5 Всего: 18 |
Не пойму, с чего ты взял, что алгоритм на чем-то "сломается"?
Если три точки не лежат на одной прямой, то площадь треугольника (у меня - учетверенная) всегда ненулевая (считается через векторное произведение) |
|||
|
||||
Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: нет Всего: 6 |
Да, площадь, конечно не нулевая...
Что-то меня в этом алгоритме все равно смущает, но это часто бывает, когда берусь за математику. Ладно, задача работает в большинстве случаев и на данный момент мне этого достаточно. Спасибо ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |