2017-06-16 31 views
0

//研究並使用beginShape()和endShape()繪製3個獨立的草圖。每個草圖都必須包含頂點(頂點())。您將需要的工具:beginShape(),endShape(),vertex(),for循環。如何調整此代碼以將頂點包含在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

現在你正在使用的功能,如ellipse()rect()繪製你的形狀。您可以使用beginShape()vertex(),並且endShape()繪製你的形狀來代替。

開始更換rect()功能。你已經知道矩形的位置和大小。因此,使用vertex()函數的四個調用來替換它應該很容易。

圓圈是有點麻煩,但還是可行的。您需要使用基本的三角函數來確定圓周圍的頂點。谷歌是你的朋友。

但說實話,這似乎有點毫無意義。爲什麼要使用vertex()來繪製Processing已經爲您繪製的形狀?您可能希望與您的教師覈對,以確保您正確理解分配。