我正在尝试从P5.js中几个矩形的轮廓形成一个圆形

这是我到目前为止所拥有的,但是正如您所看到的,这还不是一个小圆圈。
https://codepen.io/anon/pen/KZaOKB

const width = 400;
function setup() {
  createCanvas(width, width);
}
function draw() {
  background(220);
  noStroke();
  fill(color(175,100,220));

  for (var i = 0; i <= 36; i++) {
    var e = radians(i * 10);
    var height = 150 * sin(e/2) * 2;

    rect(i*11 ,(width/2)-10-(height/2), 10, height);
  }
}


这是我用来查找和弦的公式。
javascript - P5.js用矩形绘制圆形-LMLPHP

我不确定数学是否有问题或使用的公式完全错误。谢谢

最佳答案

这称为弧线弧线(弧线或线段的高度)

我有Radius和Sagitta,需要使用以下公式计算弧度Width(也就是弦的长度):

javascript - P5.js用矩形绘制圆形-LMLPHP

s:箭矢的长度
r:圆弧的半径
l:是圆弧底部距离的一半(和弦长度的一半)
注意在所有上述公式中,长度l是弧的宽度的一半。全宽将是此宽度的两倍。只需将l乘以2

javascript - P5.js用矩形绘制圆形-LMLPHP

使用P5.js的JavaScript代码



const r = 200;
const lineWidth = 10;
const lines = (r * 2) / lineWidth;

function setup() {
  createCanvas(400, 400);
}

function draw() {
  background(220);
  noStroke();
  fill(color(175,100,220));

  for (var i = 0; i <= lines; i++) {
    const s = (i * lineWidth) + lineWidth;
    const chordLength = (Math.sqrt((2 * s * r) - (s*s)) * 2);
    rect(i * lineWidth, r - (chordLength / 2), lineWidth-1, chordLength);
    // rect(x, y, width, height)
  }

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.11/p5.min.js"></script>

关于javascript - P5.js用矩形绘制圆形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47995931/

10-12 13:14