如何调整此代码以包含for循环中的顶点?

时间:2017-06-16 05:36:16

标签: for-loop vertex p5.js

//研究并使用beginShape()和endShape()绘制3个单独的草图。每个草图必须包含顶点(顶点())。你需要的工具:beginShape(),endShape(),vertex(),for循环。

//我们应该制作莫尔图案。我已经使用下面的代码获得了所需的结果,但它不包括顶点,因为赋值要求。如何编辑调整此代码以包含顶点但提供相同的输出?

var theta = 0.0;
var circWidthMultiplier = 17.5;
var circHeightMultiplier = 12.5;
var rectWidthMultiplier = 12.5;
var rectHeightMultiplier =17.5;
var rotationSpeed = 0.005;
function setup() {
  createCanvas(windowWidth,windowHeight);
  rectMode(CENTER);
}

function draw() {
  background(100);
  noFill();

  push();
  beginShape();
  translate(width/2, height/2);
  for(var i =0; i < 50; i+=5){
    ellipse(0, 0,
    i*rectWidthMultiplier,
    i*rectHeightMultiplier);
  }
  endShape();
  pop();


  push();
  beginShape();
  translate(width/2, height/2);
  rotate(theta);
  for(var i =0; i < 50; i+=5){
    ellipse(0, 0,
    i*circWidthMultiplier,
    i*circHeightMultiplier);
  }
  endShape();

  pop();
  beginShape();
  translate(width/2, height/2);
  for(var i =0; i < 50; i+=2){
    rect(0, 0,
    i*circWidthMultiplier,
    i*circHeightMultiplier);
  }
  endShape();
  pop();
  theta += rotationSpeed;
}

1 个答案:

答案 0 :(得分:0)

现在您正在使用ellipse()rect()等功能来绘制形状。 可以使用beginShape()vertex()endShape()代替您绘制形状。

从替换rect()功能开始。您已经知道矩形的位置和大小。因此,通过四次调用vertex()函数来替换它应该非常容易。

圆圈有点棘手,但仍然可行。您需要使用基本三角法来计算圆周围的顶点。谷歌是你的朋友。

但老实说,这似乎有点无意义。为什么要使用vertex()来绘制Processing已为您绘制的形状呢?您可能需要咨询教师,以确保您正确理解作业。