Здравствуйте, cures, Вы писали:
C>Начиная с пункта 3 сложновато, не проще ли: строим центр окружности как точку пересечения этой плоскости с срединными перпендикулярами к двум парам исходных точек,
если вычисления делать с трехмерными координатами, то в общем-то можно просто рассчитать точку пересечения срединных перпендикуляров, она автоматически получится принадлежащей плоскости этой дуги.
однако искать точку пересечения двух прямых в трехмерном пространстве это та еще морока.
скорее всего автору топика это нужно для расчетов в программе, а там будут практически неизбежны неточности вычислений.
и вычислив эти срединные перпендикуляры может оказаться, что они не пересекаются вообще — из-за неточности операций с плавающей точкой.
это нужно будет как-то учитывать при расчетах.
в этом отношении перевод всего в координаты на плоскости даст более стабильный результат — срединные перпендикуляры в плоскости точно пересекутся.
> сравниваем расстояние до этого центра от проверяемой точки и от одной из искомых. Если равны — то точка лежит и на сфере и на плоскости, то есть на нужной окружности, если не равны — не лежит. C>Можно в символьном виде записать проверяемое равенство, там что-нибудь может сократиться, вычисления упростятся (можно будет явно координаты центра не искать).
к такому решению нужно еще придумать какой-то прием, который позволит проверить принадлежность именно дуге, а не только окружности.
очевидный путь — это сравнение угловых координат точек, а для этого нужно вычислять центр.