Найти размер внутреннего прямоугольника круга - PullRequest
1 голос
/ 04 января 2012

У меня есть круг, скажем, радиус 10, и я могу легко найти внешний ограничивающий прямоугольник, поскольку его ширина и высота равна радиусу, но мне нужен внутренний ограничивающий прямоугольник.Кто-нибудь знает, как рассчитать разницу в размерах по внешнему и внутреннему ограничивающим прямоугольникам круга?

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

circle example

Моё первое предположение, чтобы найти разницу, заключается внайдите одну из четырех точек внутреннего прямоугольника, найдя эту точку по окружности круга, каждая точка имеет смещение на 45 градусов, а затем просто найдите отличную от этой точки и связанную точку в большем прямоугольнике.

РЕДАКТИРОВАТЬ: На основе решения, данного Стивом Б. Я придумал алгоритм, чтобы получить то, что я хочу, а именно:

r*2 - sqrt(2)*r

Ответы [ 3 ]

4 голосов
/ 04 января 2012

Если радиус равен r, размер внешнего прямоугольника будет r*2.

Размер внутреннего прямоугольника будет равен 2*sqrt(2*r).

Таким образом, разница будетравняется 2*(r-sqrt(2*r^2)).

3 голосов
/ 04 января 2012

Вы знаете размер радиуса, и у вас есть треугольник с углом 90 градусов, одна точка которого является центром вашего круга, а две другие - двумя углами вашего внутреннего квадрата.

Теперь, если вы знаете две стороны треугольника, вы можете использовать Пифагор:

x^2 = a^2 + b^2
    = 2* r^2

So

x = sqrt(2 * r^2)

С r радиусом круга, x стороной квадрата.

0 голосов
/ 04 января 2012

Это простая геометрия: внешний прямоугольник имеет длину ребра, равную 2 * R, внутренний - диагональ, равную 2 * R. Таким образом, край внутреннего прямоугольника равен sqrt (2) * R. Соотношение краев внешнего прямоугольника, разделенное на внутренний, очевидно, равно sqrt (2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...