Build-in feature looks insufficient. It allows to set number of waves per segment, which makes wave of different frequencies if curve consists of different lengths segments.
3 Answers
You can do this with a pattern brush instead of using the zigzag effect. It's not as easy, but gives you complete control and doesn't have this problem. Draw one segment of the zigzag, select it, then in the Brushes window choose new brush and choose pattern brush. Then there's a bit of tweaking and adjustment to get it lining up properly.
Here's an example with a wonky zigzag, showing it can be any kind of pattern you want, and the frequency will be the same regardless of the shape it's applied to.:
You'll probably need a corner tile too. To make this, have a blank (no fill, no stroke) square the exact height of your main tile, and add a corner of an appropriate style in the appropriate place. Add this to the pattern brush by dragging it onto the appropriate part of the brushes panel (probably the left square) while holding alt
.
The trick is to get the shape made of segments of equal length.
In this example, the rectangle has four segments; then add points in the half of the larger sides to equalize them to the smaller sides. The final rectangle is composed of six segments.
The way I do it is:
First I use a Roughen effect to fake the anchors. Set the size to 0 to not affect the geometry, and detail to increase those fake anchors.
Now I use a Zig Zag effect and set it as my desire.
See the image below for settings I used.