Как я могу определить ширину и высоту шестиугольника - PullRequest
2 голосов
/ 08 марта 2011

Каждая сторона составляет 60 градусов. а верхняя и нижняя стороны горизонтальны

Я думаю width = (cos(60) * sideLength * 2) + sideLength = sideLength * 2

Кажется, это немного не так

Ответы [ 3 ]

6 голосов
/ 08 марта 2011

ширина должна быть 2*sideLength (sideLength = cos(60) * sideLength * 2)

высота будет sin(60) * sideLength * 2 = sqrt(3)*sideLength

2 голосов
/ 08 марта 2011

Я чушь в математике, так что Wolfram Alpha - мой сайт для любых вопросов по формуле: http://www.wolframalpha.com/input/?i=diagonal+of+hexagon

и это согласуется с @ jswolf19: sqrt(3) * sideLength

0 голосов
/ 08 марта 2011

Это простая тригонометрия. Разделите многоугольник на треугольники, которые вы можете решить.

Например, представьте вертикальную линию от верхнего левого до нижнего левого угла, а затем разделите ее на две части перпендикулярно от среднего левого угла. Теперь у вас есть два идентичных треугольника с двумя известными углами (90 градусов и 30 градусов и известный гипотенуза). Сторона напротив этого треугольника равна половине высоты и равна греху (тета) * гипотенузе.

То есть высота 2 * sin (60) * sideLength.

Аналогично ширина - это длина стороны + 2 * длина соседней стороны = длина стороны + cos (60) * sideLength * 2.

...