7

I want to create a regular hexagon where each side is exactly the same length.

First I tried drawing a hexagon using shift, but it wasn't regular (see what happens when I rotate it 60 degrees):

Irregular Hexagon

So I figured I could probably create one by drawing 6 equilateral triangles with shift and then moving them in to position. Unfortunately, they don't snap together perfectly, and they are actually 6 separate shapes which means I can't add an outline without them looking weird:

A bunch of triangles making a hexagon

Then I tried making a hexagon using shift that is the same height as my triangular hexagon thing, and then using the yellow handle to adjust it properly so that it matched the internal angles of the triangle. This too did not work perfectly since I was winging it, and while very very close, it wasn't perfect either. Doing a google search didn't help much either.

So how can you make a regular hexagon in PowerPoint?

7 Answers 7

7

An equally accurate result without VBA is obtained, when I use the 'Size and Position' dialog from the context menu. The height must be sin(60)*width, this gets me a good regular hexagon.

3
  • 1
    Just to point out, you may need to convert the 60 from degrees to radians depending on what you use to calculate the height value. rads = deg * pi/180
    – T_Bacon
    Jun 7, 2016 at 13:09
  • This is what I was looking for. The answer was in math all along.
    – jmac
    Jun 8, 2016 at 1:49
  • where is the 'Size and Position' dialog from the context menu?
    – lanselibai
    Aug 2, 2020 at 12:29
6

To get a regular hexagon in PowerPoint, create a hexagon using shift, then run the following VBA command with that hexagon selected:

activeWindow.Selection.ShapeRange(1).Adjustments(1) = 0.28706

After I created the approximate shape using the overlay on the close-but-not-quite equilateral triangle, I decided to get programmatic. I used some VBA to check what the position of the handle was (with the hexagon selected):

?activeWindow.Selection.ShapeRange(1).Adjustments(1) 

The value for the close-but-not-quite hexagon was .28002, so I started fiddling around and trying to do math assuming that this value was somehow based on angles. It isn't. I tried setting it to .28 -- that doesn't work either.

So I set it to the furthest left it could go (turning the hexagon into a square) and the value was 0. Then I tried setting it as far right (turning the hexagon into a diamond) and got .57412. Given the starting value of the close-but-not-quite hexagon of .28002, and my many attempts to get it right with none of them working, I tried taking half of .57412, which was .28706, and lo and behold, that was the magic number.

2

Found an easier method on creating a perfect Hexagon: In PowerPoint, First Create a Perfect Circle: Eg 4cm x 4cm Now create a Hexagon on top of the Circle and resize till all edges "snaps" to the Circle: Perfect Hexagon

Or Use the Following on any Hexagon: Height 4cm x Width 4.46cm. Then "Lock Aspect Ratio" to resize.

1
  • This solution is way faster than anything else, if the hexagon only needs to be "optically" exakt (not calcuated). Can almost be perfect if you zoom in. It took me less than 30 seconds to get my regular hexagon.
    – BogisW
    May 10, 2020 at 15:14
1

Taking Misnomer's answer a bit further... Once I had the six equal length sides configured and grouped, I overlayed the hexagon object from PPTX. I sized it to exactly match the equal-sided hexagon. Using 1" sides, the matching hexagon dimensions are Height 1.73" Width 2.00". So just may a hexagon that is this size, lock the aspect ratio, and resize the hexagon to meet your needs. Doing this gives you a shadeable object as well.

0

A regular hexagon has a width-to-height ratio of 2/sqr(3). The first corner, the top left one, is at 25% of the width. So one thinks the Adjustments(1), which is the point where Microsoft determines where to put the corner point, for the hexagon should be 0.25, but no. Microsoft has the point at h/w*p, meaning that the proportion will only be valid if the w/h-ratio is 1, which it isn't, it's 2/sqr(3). So you have to adjust the Adjustments(1) by this offset.

As suggested by jmac I also recommend using vb-editor, not changing widths or heights since it won't correct the false position of the corner point, which you will se when you rotate the hexagon and join with other similar hexagons. Regardless if you draw the hexagon with or without holding shift, your hexagon needs to be adjusted at its corner setting.

Select your hexagon, press Alt+F11 (opens vb-editor), press Ctrl+G (opens Immediate window). Paste

ActiveWindow.Selection.ShapeRange(1).Adjustments(1) = 1/sqr(12)

and press enter.

This corrects the hexagon to a regular hexagon which can be rotated to any multiple of 60 degrees angle and fit together with hexagons with perfect match.

The 1/sqr(12) comes from the fact that the 0.25 has to be adjusted for the 2/sqr(3) ratio, so (1/4) * (2/sqr(3)) = 1/sqr(12).

P3

0

Draw a perfectly horizontal line that is as long as your desired side length. Copy that line and rotate it 60 degrees and -60 degrees to create the other sides of the hexagon. The lines should snap together at the points ensuring everything matches up. When complete, hold control and click on each line to select all 6 lines. Then, right click on one of them and group them together. Now you have a regular hexagon that you can copy and paste.

0

I've just made a regular hexagon in MS Powerpoint. Given that the maths applied is rounded to two decimals, this is not a perfect solution, but it should be sufficient for most presentational purposes. This is how I did it:

  1. a regular hexagon can be made from 6 equilateral triangles (triangles with all three sides the same length) arranged such that the points of all six meet in the centre of the hexagon:

hexagon consisting of six equilateral triangles

  1. an equilateral triangle can be made from two right angle triangles arranged 'back to back':

two back to back right angle triangles

  1. We can create right angle triangles in MS Powerpoint readily. Select 'Right Triangle' from the 'Basic Shapes' section of the 'Home' ribbon and draw the triangle. Then right click on it and select 'Format Shape'. Select 'Size & Properties' and set Height and Width. After doing a little maths, I used height of 4.66cm and width of 2.5cm (following Pythagoras theorem: a² + b² = c², the long side will be 5cm in this case). If you don't want to do any maths, just use these sizes - you can always resize the final shape later.

  2. Duplicate your triangle, flip it horizontally, and place it such that the sides of length 4.66cm snap together.

  3. Group the two triangles as a single item, and duplicate this twice. That will give you 3 equilateral triangles. Rotate one of these 60 degrees, and a second negative 60 degrees. Once rotated like this, all three triangles can be placed so that they snap together on one side; forming a trapezoid.

3 equilateral triangles - arranged as a trapezoid; half a hexagon

  1. Group the collection of triangles and duplicate the trapezoid, flipping the duplicate vertically. Snap fit this up against the original, group both halves and you have the template for a hexagon that is effectively regular.

  2. Finally, because I actually wanted a hexagon, and not 12 right angle triangles grouped to form a hexagon, I went back to the 'Basic Shapes' menu, and drew any old hexagon. I placed this new shape over the top of my carefully constructed regular hexagon and adjusted the parameters of the new shape to match it. Powerpoint reported the width of the resultant hexagon as 10cm, height 8.66cm, consistent with my original right triangle's parameters. I then only had to adjust the slider controlling the angle to fit exactly over the template.

MS Powerpoint default hexagon resized to cover the template. Angle slider highlighted

  1. As noted above, this actual MS Powerpoint regular hexagon can then be resized to meet your requirement. Hold down the shift key while resizing and it will remain a regular shape. You can check the hexagon really is regular by copying it, overlaying the copy on the original and rotating it in place.

Hope that helps...

Not the answer you're looking for? Browse other questions tagged or ask your own question.