创建圆形游戏板 - 旋转不按我想要的方式工作

Create circular game board - Rotate not working as I want it to

我正在尝试用 p5.js 制作游戏板。我希望棋盘的圆形形状总共有 60 块瓷砖,这意味着旋转应该是 6 度(6*60 = 360 度),如果我想要圆形的 60 块瓷砖。

我无法让它工作,尽管我认为我做的是对的。这基本上就是我想要做的:

如果我尝试 rotate(6) 而没有翻译(因为这显然完全行不通),我得到这个结果:

https://jsfiddle.net/mortenmoulder/ze6fn3av/ 查看我的代码(您可能想调整 window 的大小并再次点击 运行)和这里:

angleMode(DEGREES);
for (let i = 0; i <= 60; i++) {
    //translate(width / 2, height / 2);
    rotate(6);

    rect(centerW + 500, centerH, 100, 50);
}

我做错了什么?

前言:p5.js没用过

无论如何,我调整了你的代码并且非常接近:

var tileInnerWidth = 52;
var tileOuterWidth = 57
var tileHeight = 50;

translate(width / 2, height / 2);
for (let i = 0; i <= 60; i++) {
    quad(-tileOuterWidth/2, centerH, tileOuterWidth/2, centerH, tileInnerWidth/2, centerH - tileHeight,-tileInnerWidth/2,centerH - tileHeight);
    rotate(6);
}

这里是 fiddle:https://jsfiddle.net/mht3o21p/2/

解释一下我在做什么:

  • 有一个单一的平移将原点移动到屏幕中间,这样旋转就可以相对于原点
  • 我画了一个梯形,它位于圆的最底部。它需要水平居中,所以它的 x 坐标除以 2。尺寸是通过反复试验选择的,看起来不错。
  • 我旋转 6 度并重复。