Re: простая геометрия / погрешности вычислений
- From
- Sergey Andrianov (2:5020/1507.400)
- To
- Alexander M. Serkov
- Date
- 2002-12-08T23:19:06Z
- Area
- RU.ALGORITHMS
Здравствуй, Alexander!
Однажды 07-Dec-02 в 22:22 Alexander M. Serkov (via gate)
написал All по поводу
-=- простая геометрия / погрешности вычислений -=-
AMS> элементарный геометрический вопрос, но сложности с реализацией.
AMS> как определить принадлежность четырех точек одной плоскости?
AMS> есть два треугольника в 3D, нужно определить угол между ними. (между
AMS> плоскостями, в которых они лежат). даже проще: знак этого угла (+/0/-). то
AMS> есть он больше, меньше или равен 180 градусам. вопроса что есть "больше",
AMS> что "меньше", не стоит (одна из сторон треугольника помечена).
AMS> сложность с тем, что есть "равен 180". нужно, например, чтобы если
AMS> треугольники 1-2-3 и 1-3-4 признаны лежащими в одной плоскости, то
AMS> треугольники 1-2-4 и 2-3-4 тоже лежали в одной плоскости, и наоборот. или,
AMS> например, если 1-2-3 и 1-2-4 лежат в одной плоскости, то сравнение их с
AMS> треугольником 1-2-5 давало бы одинаковые результаты.
AMS> сталкивался ли кто-нибудь с такой проблемой? можно в мыло.
Вещественные числа компьютер считает приближенно, поэтому ГАРАНТИРОВАТЬ ничего нельзя принципально. Можно лишь обеспечить, что вероятность ошибки не будет превышать определенной достаточно малой величины, т.е. следует задаться определенной погрешностью. Естественно, величина этой погрешности будет зависеть от представления числа (только стандартных не менее трех: 4, 8 и 10 байтов).
Если необходимо именно получить гарантию однозначности, то следует отказаться от идеи сравнивать пары треугольников 123 и 134 с 124 и 234, а сформулировать алгоритм, который бы определял, в каком порядке следует перебирать точки. Например, "ломать" четырехугольник только по короткой диагонали. Тогда мы будем знать, что, скажем, 123 и 134 - это правильно, а 124 и 234 - ничего не гарантирует.
До свидания, в 23:11 MSK
Sergey
---
* Origin: Sergiev Posad (2:5020/1507.400)