Как Вы вычисляете выровненную осью ограничительную рамку эллипса?

Azure Согласие и разрешения:

Azure всегда заботится о доступе к организационным и пользовательским данным в приоритетном порядке. Согласие - это процесс предоставления пользователю разрешения на доступ к защищенным ресурсам от его имени. Администратора или пользователя могут попросить дать согласие на доступ к его организации / отдельным данным.

Подробнее о согласии пользователя

[118] можно получить здесь: [118]

. Пользователь должен сначала дать согласие клиентскому приложению. После получения согласия клиентское приложение сможет вызывать Microsoft Graph API от имени пользователя. Так что да, фреймворк сайта требует вышеуказанного разрешения. Подробнее о структуре согласия Azure Active Directory можно узнать здесь

.

26
задан Matthew Crumley 17 September 2008 в 21:40
поделиться

3 ответа

Вы могли попытаться использовать параметрические уравнения для эллипса, повернутого под произвольным углом:

x = h + a*cos(t)*cos(phi) - b*sin(t)*sin(phi)  [1]
y = k + b*sin(t)*cos(phi) + a*cos(t)*sin(phi)  [2]

..., где эллипс имеет центр (h, k) полуглавная ось a и полунезначительная ось b, и повернут через угол phi.

можно тогда дифференцировать и решить для градиента = 0:

0 = dx/dt = -a*sin(t)*cos(phi) - b*cos(t)*sin(phi)

=>

tan(t) = -b*tan(phi)/a   [3]

, Который должен дать Вам много решений для t (два из которых Вы интересуетесь), разъем, что назад в [1] для получения макс. и минута x.

Повторение для [2]:

0 = dy/dt = b*cos(t)*cos(phi) - a*sin(t)*sin(phi)

=>

tan(t) = b*cot(phi)/a  [4]

Позволяет, пробуют пример:

Считают эллипс в (0,0) с a=2, b=1, повернутым на PI/4:

[1] =>

x = 2*cos(t)*cos(PI/4) - sin(t)*sin(PI/4)

[3] =>

tan(t) = -tan(PI/4)/2 = -1/2

=>

t = -0.4636 + n*PI

Мы интересуемся t =-0.4636 и t =-3.6052

, Таким образом, мы добираемся:

x = 2*cos(-0.4636)*cos(PI/4) - sin(-0.4636)*sin(PI/4) = 1.5811

и

x = 2*cos(-3.6052)*cos(PI/4) - sin(-3.6052)*sin(PI/4) = -1.5811
35
ответ дан 28 November 2019 в 06:51
поделиться

Это относительно простой, но немного твердый объяснить, так как Вы не дали нам способ, которым Вы представляете свой эллипс. Существует столько способов сделать это..

Так или иначе, общий принцип идет как это: Вы не можете вычислить, ось выровняла граничное поле непосредственно. Можно однако вычислить экстремальное значение эллипса в X и Y как точки в 2D пространстве.

Для этого достаточно взять уравнение x (t) = ellipse_equation (t) и y (t) = ellipse_equation (t). Получите производную первого порядка его и решите его, поскольку это - корень. Так как мы имеем дело с замещающими знаками, которые основаны на тригонометрии, это является прямым. Необходимо закончить с уравнением, которое или получает корни через atan, acos или asin.

Подсказка: Для проверки кода пробуют его неповернутым эллипсом: необходимо получить корни в 0, Пи/2, Пи и 3*Pi/2.

Делают это для каждой оси (X и Y). Вы получите самое большее четыре корня (меньше, если Ваш эллипс ухудшится, например, один из радиусов является нулем). Evalulate положения в корнях и Вы понимаете все экстремальные мысли эллипса.

Теперь Вы почти там. Получение граничного поля эллипса так же просто как сканирующий эти четыре точки для xmin, xmax, ymin и ymax.

Btw - если у Вас есть проблемы при нахождении уравнения эллипса: попытайтесь уменьшить его до случая, что у Вас есть выровненный эллипс оси с центром, двумя радиусами и углом вращения вокруг центра.

, Если Вы делаете так, уравнения становятся:

  // the ellipse unrotated:
  temp_x (t) = radius.x * cos(t);
  temp_y (t) = radius.y = sin(t);

  // the ellipse with rotation applied:
  x(t) = temp_x(t) * cos(angle) - temp_y(t) * sin(angle) + center.x;
  y(t) = temp_x(t) * sin(angle) + temp_y(t) * cos(angle) + center.y;
6
ответ дан 28 November 2019 в 06:51
поделиться

Я думаю, что самая полезная формула - этот. Замещающий знак, повернутый от угла phi от источника, имеет как уравнение:

alt text

alt text

, где (h, k) центр, a и b, размер главной и незначительной оси и t варьируется от - пи к пи.

, Из которого, необходимо быть в состоянии произойти, для которого t dx/dt или dy/dt переходят в 0.

2
ответ дан 28 November 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: