0 szavazat
által 

Egy codeberrys feladathoz kérnék segítséget, (https://orange.codeberryschool.com/lessons/practice-the-basics/erdwss/4) hogy tudom megoldani, hogy a kiinduló téglalaptól minden további téglalap összes csúcsa az előző téglalap csúcsaihoz képest 10-10 pixellel beljebb van?

1 válasz

0 szavazat
(480 pont) által 

szia, egy for ciklussal

én így oldottam meg:

var canvas = document.getElementById('myCanvas'); //defináltam a canvast
var ctx = canvas.getContext('2d'); //definiáltam a context
var cw = canvas.width; //definiáltam a canvas szélességét
var ch = canvas.height;// defináltam a canvas magasságát

var count = 0;//definiáltam a számlálót és nullára állítottam
var total = 17;//megadtam az összes téglatest számát
var xCoord = 0;//definiáltam a kezdő x koordinátát
var yCoord = xCoord;//definiáltam az y koordinátát
var hueValue = 360; //megadtam a kezdő hue értéket

for (count; count<total;count++, cw-=20, ch -=20, hueValue-=(360/total), xCoord+=10, yCoord+=10){//számoljon nullától, amíg el nem éri a total értékét. minden iteráció végén adjon hozzá 1et. minden iteráció végén vegyen el cw és ch értékből 20at ami definiálja a téglatestünket alább (mivel 10-10 pixel kerül beljebb, így a tégla szélessége és magassága 20px-el lesz keskenyebb, az x és y koordinátákat növelje 10-10px el, és csökkentse a hueValue-t 360/17el
ctx.beginPath();//nyisson útvonalat
ctx.fillStyle = 'hsla('+ hueValue +', 50%, 45%, 1)';//iterációnként olvassa be a hueValue-t (ami 360/17el csökken)
ctx.fillRect(xCoord,yCoord,cw, ch);// rajzoljon téglát, az iterációnként újraszámolt értékekből (x és y koordináta növekszik, szélesség és magasság csökken)
}

...