Одна вещь, которая не указана, это как вы конвертируете этот диапазон углов в точки в пространстве. Итак, мы начнем с этого и предположим, что угол 0 отображается на O + r *** X **, а угол & pi; / 2 отображается на O + r *** Y **, где O - центр круга и
X = (x 1 , x 2 , x 3 )
а также
Г = (у 1 , у 2 , у 3 )
являются единичными векторами.
Таким образом, круг выделяется функцией
P (& theta;) = O + r cos (& theta;) X + r sin (& theta;) Y
где & тета; находится в закрытом интервале [& theta; начало , & theta; конец ].
Производная P равна
P '(& theta;) = -r sin (& theta;) X + r cos (& theta;) Y
В целях вычисления ограничивающего прямоугольника нас интересуют точки, в которых одна из координат достигает экстремального значения, а следовательно, и точки, в которых одна из координат P 'равна нулю.
Установка -r sin (& theta;) x i + r cos (& theta;) y i = 0 мы получаем
tan (& theta;) = грех (& theta;) / cos (& theta;) = y i / x i .
Итак, мы ищем & theta; где & тета; = arctan (y i / x i ) для i в {1,2,3}.
Вы должны следить за деталями диапазона arctan (), избегая деления на ноль, и если if & theta; это решение, то же самое можно сказать о & theta; & plusmn; k * & pi; и я оставлю эти детали вам.
Все, что вам нужно сделать, это найти набор & theta; соответствующие экстремальным значениям в вашем диапазоне углов, и вычислите ограничивающую рамку их соответствующих точек на окружности, и все готово. Возможно, что в диапазоне углов нет экстремальных значений, и в этом случае вы вычисляете ограничивающую рамку для точек, соответствующих & theta; start и & theta; end . Фактически, вы также можете инициализировать набор решений & theta ;, используя эти два значения, так что вам не нужно его использовать в особых случаях.