//研究并使用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;
}
答案 0 :(得分:0)
现在您正在使用ellipse()
和rect()
等功能来绘制形状。 可以使用beginShape()
,vertex()
和endShape()
代替您绘制形状。
从替换rect()
功能开始。您已经知道矩形的位置和大小。因此,通过四次调用vertex()
函数来替换它应该非常容易。
圆圈有点棘手,但仍然可行。您需要使用基本三角法来计算圆周围的顶点。谷歌是你的朋友。
但老实说,这似乎有点无意义。为什么要使用vertex()
来绘制Processing已为您绘制的形状呢?您可能需要咨询教师,以确保您正确理解作业。