Алгоритм создания многоугольника из n углов внутри квадрата (HTML5 - Canvas)?

Рассмотрим следующую настройку:

CSS:

div {
    position :absolute;
    top: 50px;
    left: 50px;
    height: 200px;
    width: 200px;
    border: 2px solid black;
}

HTML:

<div id="container">
    <canvas id="my-canvas"/>
</div>

Сейчас внутри#my-canvas Я хочу иметь возможность рисовать многоугольник с любым количеством углов, которые всегда расположены на одной из его сторон (а не на одном из его углов). Высота и ширина, которую многоугольник будет «занимать», всегда должна быть равна его родительскому элементу (в данном случае 200px X 200px), который мы предположим, что он всегда будет квадратным.

Существует ли стандартный алгоритм для достижения этого (без использования каких-либо библиотек JS)?

Рисование многоугольника с 4 углами внутри#my-container Я думаю, это самый простой способ, так как вы будете создавать квадрат одинакового размера:

var c = document.getElementById('my-canvas').getContext('2d');
var side = document.getElementById('container').clientHeight;
c.fillStyle = '#f00';
c.beginPath();
c.moveTo(0, 0);
c.lineTo(0, side);
c.lineTo(side, side);
c.lineTo(side, 0);
c.closePath();
c.fill();

Но как насчет многоугольника с 5 углами или n углами?

var corners = 5;
var c = document.getElementById('my-canvas').getContext('2d');
var side = (document.getElementById('container').clientHeight * 4) / corners;
c.fillStyle = '#f00';
c.beginPath();
c.moveTo(0, 0);
// ok the following is totally wrong, but I'm sure there is a loop involved and that the x & y
// should increment/decrement each time around in some way, relevant to the value of *side*
for (var i=0; i<corners; i++) {
   c.lineTo((side*i), side);
} 
c.closePath();
c.fill();

Спасибо заранее за любую помощь!

НОТА :

Меня интересуют только многоугольники, стороны которых имеют одинаковую длину (я думаю, это то, что вы бы назвали «правильным» многоугольником?).

Поскольку мы находимся во вселенной HTML / CSS, наименьшей допустимой стороной будет длина 1 пикселя. Так что это единственное ограничение.

Тип полигонов, о которых я говорю, - это те, которые находятся в левом нижнем углуэто изображение, Видимо они типа "правильные выпуклые"? Извиняюсь, но я не математик.

Ответы на вопрос(2)

Ваш ответ на вопрос