Я новичок в работе с <canvas>
и ужасно в математике. Я рисую простой равносторонний треугольник на холсте с помощью этой функции, которая заимствованный код от кого-то еще (не ненавидит меня):Как повернуть треугольник, не поворачивая весь холст?
drawTriangle(PosX, PosY, SideLength, Orientation) {
context.beginPath();
var sides = 3;
var a = ((Math.PI * 2)/sides);
context.moveTo(PosX + SideLength, PosY);
for (var i = 1; i < sides + 1; i++) {
context.lineTo(PosX + SideLength * Math.cos(a*i), PosY + SideLength * Math.sin(a*i));
}
context.closePath();
return true;
}
Функция будет знать только центральные координаты треугольника и ориентация, чтобы указать на нее, ничего больше.
В настоящее время он рисует треугольник успешно, но «указывает» на восток.
Как поворачивать треугольник, используя параметр Orientation
(в градусах) без поворота всего холста, как предлагают другие ответы?
Если вращать холст, затем нарисуйте треугольник, затем повернуть холст * назад *, не будет, что достичь желаемого результата и позволит вам идти с дальнейшей отрисовки? (Вы не говорите о вращении существующего треугольника, который был нарисован ранее?) – nnnnnn
Треугольник рисует каждый кадр с остальной частью холста, который содержит другие фигуры, если это помогает. – Jared
Правильно, так почему же вращение холста, рисование фигуры, а затем поворот назад проблемы? Это то, что делает работающее решение внизу.(Не то, что это решение * только *, но если оно простое и оно работает ...) – nnnnnn