8 рдЪрд░рдгреЛрдВ рдореЗрдВ рд░реИрдВрдбрдо рдХреИрдЯ рдЬреЗрдирд░реЗрдЯрд░


рдЕрдЪреНрдЫрд╛ рд╕рдордп, рд╣реЗрдмреНрд░!
рдореИрдВ рд╣рдореЗрд╢рд╛ рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рдерд╛, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рдерд╛, рдЦрд╛рд╕рдХрд░ рдмрд┐рд▓реНрд▓реА рдХрд╛ рдЪреЗрд╣рд░рд╛ред рдЖрдк рд░реВрдк, рд░реЗрдЦрд╛ - рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, рдПрдХ рдЕрд▓рдЧ рдореВрдб рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджреЗрдВрдЧреЗред рдореЗрд░реА рдП 4 рд╢реАрдЯ рдХреЛ рд╕реАрдорд╛ рддрдХ рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдпрд╣рд╛рдБ рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕рд┐рд░ рдореЗрдВ рдЪреЛрдЯ рд▓рдЧреА рдереА - рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЖрдк рдереВрдерди рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдХрд╛ рдЬрдирд░реЗрдЯрд░ рдмрдирд╛рддреЗ рд╣реИрдВ? рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЖрдк рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрд┐рд▓реНрд▓реА рдХрд╛ рдЪреЗрд╣рд░рд╛ рдмрд╛рд╣рд░ рдлреЗрдВрдХрддреЗ рд╣реИрдВред рдпрдерд╛рд╕рдВрднрд╡ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдкред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬ рдХреИрд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред
рдореИрдВ рдПрдХ рдмрд┐рд▓реНрд▓реА, рдмрд┐рд▓реНрд▓реА рдкреНрд░реЗрдорд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред

рд╣рдо рдЬреЗрдПрд╕ рдФрд░ рдХреИрдирд╡рд╕ рдкрд░ рд╕рдм рдХреБрдЫ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдореИрдВ рдЖрд░рдВрднреАрдХрд░рдг, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рд╕рдорд╛рди рдХреЛрдб рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рднрд░рд╛ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рд╣реИ рдирд╛?

рдореИрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдп рджреВрдВрдЧрд╛, рдмрд╕ рдЖрдЧреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╡реЗ рдпрд╣рд╛рдБ рд╣реИрдВ:

function add(func, scale){ Graphics.ctx.scale(scale.x, scale.y); func(Graphics.ctx); Graphics.ctx.scale(1, 1); } 

рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ, рдХреБрдЫ рдЦреАрдВрдЪреЗрдВ, рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд▓рд╛рдПрдВред

 function drawircle(ctx, pos, radius, fillColor, strokeColor, lineWidth) { ctx.beginPath(); ctx.arc(center.x - pos.x, center.y + pos.y, radius, 0, 2*Math.PI, false); ctx.fillStyle = fillColor; ctx.fill(); ctx.lineWidth = lineWidth; ctx.strokeStyle = strokeColor; ctx.stroke(); } 


рдФрд░ рдпрд╣ рд╡реГрддреНрдд / рдордВрдбрд▓рд┐рдпрд╛рдБ рдмрдирд╛ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рдм рд╣рдм рдкрд░ рдФрд░ рдХрд╣реАрдВ рднреА рд▓рд╛рдЦреЛрдВ рдмрд╛рд░ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдЗрдП рдЬрд▓реНрдж рд╣реА рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдХреЛ рд╕рдордЭрд╛рдПрдВ!

рдЪрд░рдг 1 - рд╕рд┐рд░


рд╣рдо рд╕рд┐рд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рд╢реЙ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд┐рд░ рд╣реИ? рд╕рд░реНрдХрд┐рд▓ред рдЬрд┐рд╕реЗ рдереЛрдбрд╝рд╛ рдирд┐рдЪреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдк рд╕реНрдЯреНрд░реЛрдХ рдХреА рдореЛрдЯрд╛рдИ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдЗрд╕реЗ рднреА рдХрд░реЗрдВрдЧреЗред рдФрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╡рд░рдг рд╣реИ, рд╣рдо рдХреЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред
рдкреВрд░реЗ рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдордЭрдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

 //   var radius = Math.sRandom(60, 70); //  var scaleCircle = {x:Math.sRandom(1,1.1),y:Math.sRandom(0.9,1.0)}; //  var whiteColor = "#fff"; var blackColor = "#000"; // add(function(ctx){ // (Math.sRandom(0, 100) < 95 ? blackColor : whiteColor) -  , , ,   , ..    . ,   . drawircle(ctx, {x:0,y:0}, radius, whiteColor, (Math.sRandom(0, 100) < 95 ? blackColor : whiteColor), Math.sRandom(2,5)); }, scaleCircle); 


рд╕рд┐рд░ рдФрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред



рдЪрд▓реЛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ!

рдЪрд░рдг 2 - рдХрд╛рди


рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдХреЗ рдХрд╛рди рдереВрдерди рдХреЗ рд╕рдмрд╕реЗ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЕрдзрд┐рдХ рдХрд╛рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдШреБрдорд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИред
рд╣рдо рдХрд░рддреЗ рд╣реИрдВред

  //,   ,     var dir = {x:0, y:radius}; //  var angleOne = Math.PI + Math.PI/Math.sRandom(2, 5); //      var pointR1 = VectorRot(dir, angleOne); //  ,         var pointR2 = VectorRot(dir, angleOne - Math.PI/Math.sRandom(4, 7)); //    var topPointR = {x:((pointR1.x + pointR2.x) / 2)+Math.sRandom(-10, 10), y:pointR2.y - 30 + Math.sRandom(0, 5)}; // add(function(ctx){ //   ctx.beginPath(); ctx.strokeStyle = strokeColor; ctx.fillStyle = fillColor; ctx.lineWidth = Math.sRandom(2, 4); topPointR = {x:topPointR.x+Math.sRandom(-1,5), y:topPointR.y+Math.sRandom(-5,5)}; ctx.moveTo(center.x + pointR1.x,center.y + pointR1.y); ctx.lineTo(center.x + topPointR.x,center.y + topPointR.y); ctx.lineTo(center.x + pointR2.x,center.y +pointR2.y); ctx.fill(); ctx.stroke(); //   ctx.beginPath(); ctx.strokeStyle = strokeColor; ctx.fillStyle = fillColor; ctx.lineWidth = Math.sRandom(2, 4); var topPointL = VectorXInvert({x:topPointR.x+Math.sRandom(-5,5), y:topPointR.y+Math.sRandom(-5,5)}); var pointL1 = VectorXInvert(pointR1); var pointL2 = VectorXInvert(pointR2); ctx.moveTo(center.x + pointL1.x,center.y + pointL1.y); ctx.lineTo(center.x + topPointL.x,center.y + topPointL.y); ctx.lineTo(center.x + pointL2.x,center.y +pointL2.y); ctx.fill(); ctx.stroke(); }, {x:1,y:1}); 


IIIii рдпрд╣рд╛рдБ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛:



рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмрд┐рд▓реНрд▓реА рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд╣реИ рдирд╛?

рдЪрд░рдг 3 - рдореВрдВрдЫреЗрдВ


рдХрд╛рдиреЛрдВ рдХреЗ рдмрд╛рдж рджреВрд╕рд░реЗ рдореЗрдВ, рдмрд┐рд▓реНрд▓реА рдХреЗ рдЪреЗрд╣рд░реЗ рдХрд╛ рдПрдХ рддрддреНрд╡ рд╣реИред рдЗрд╕реЗ рдмрдирд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдШрд░ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд░реИрдЦрд┐рдХ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП, рдЪрдХреНрд░ рдХреЛ рдореЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХрд╛рдЙрдВрдЯрд░ рдкрд░ рдмрд┐рдВрджреБрдУрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреА рд╣реЛрдЧреАред

  //    //  ,        // -    var pointsR = []; //   var count = Math.floor(Math.sRandom(3, 5)); for (var i = 0; i < count; i++) { // ,      /    var dir = {x:0, y:radius/Math.sRandom(1.6,1.9)}; // ,   ,   var angleOne = Math.PI/(2 + ((i+1)/4)); //  var pointR1 = VectorRot(dir, angleOne); // y  ,     count      //      var y = pointR1.y+(i < count / 2 ? -Math.sRandom(8, 25) : Math.sRandom(7, 15) ); //       pointsR.push({begin:pointR1, end:{x:pointR1.x - Math.sRandom(60, 100),y:y}}); } //    var lineWidth = Math.sRandom(0.5, 2); // add(function(ctx){ //  for (var i = 0; i < pointsR.length; i++) { ctx.beginPath(); ctx.strokeStyle = strokeColor; ctx.fillStyle = fillColor; ctx.lineWidth = lineWidth; ctx.moveTo(center.x - pointsR[i].begin.x,center.y + pointsR[i].begin.y); ctx.lineTo(center.x - pointsR[i].end.x,center.y + pointsR[i].end.y); ctx.stroke(); } //  for (var i = 0; i < pointsR.length; i++) { ctx.beginPath(); ctx.strokeStyle = strokeColor; ctx.fillStyle = fillColor; ctx.lineWidth = lineWidth; var pointLBegin = VectorXInvert(pointsR[i].begin); var pointLEnd = VectorXInvert(pointsR[i].end); ctx.moveTo(center.x - pointLBegin.x,center.y + pointLBegin.y); ctx.lineTo(center.x - pointLEnd.x,center.y + pointLEnd.y); ctx.stroke(); } }, {x:1,y:1}); 


рд╡реЗрдХреНрдЯрд░рдПрдХреНрд╕ рдЗрдирд╡рд░реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рдЕрдХреНрд╕рд░ рдПрдХреНрд╕ рд╡рд┐рднрд┐рдиреНрди рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ x = -x рдХрд░рддрд╛ рд╣реИ;

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реА рдмрд┐рд▓реНрд▓реА рдХреИрд╕реЗ рддреИрдпрд╛рд░ рд╣реЛрддреА рд╣реИ:



рдЪрд░рдг 4 - рдореБрдВрд╣


рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рд┐рд░реНрдл рдореБрдВрд╣ рдХреА рд░реЗрдЦрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рдлрд┐рдХ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдЧрд╛ред
рдПрдХ рдХреЛрдб рд▓рд┐рдЦреЗрдВ рдЬреЛ рдореБрдВрд╣ рдХреА рд░реЗрдЦрд╛ рдЦреАрдВрдЪрддрд╛ рд╣реИред рдмреЗрдЬрд╝рд┐рдпрд░ рдШрдЯрддрд╛ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред

  //--- //     .    + 2    // P0 // P3 | iP3 // | | | // P2--P1--iP2 var P0 = {x:center.x, y:center.y}; var P1 = {x:center.x, y:center.y + Math.sRandom(40, 65)}; var P2 = {x:center.x - Math.sRandom(29, 36),y: center.y + 40}; var P3 = {x:center.x - Math.sRandom(20, 40), y:center.y + Math.sRandom(23, 28)}; var iP2 = {x:center.x + Math.sRandom(29, 36),y: center.y + 40}; var iP3 = {x:center.x + Math.sRandom(20, 40), y:center.y + Math.sRandom(23, 28)}; // add(function(ctx){ ctx.beginPath(); ctx.strokeStyle = strokeColor; ctx.fillStyle = fillColor ; ctx.lineWidth = Math.sRandom(1,3); ctx.moveTo(P0.x,P0.y ); ctx.bezierCurveTo(P1.x, P1.y, P2.x, P2.y, P3.x, P3.y); ctx.stroke(); ctx.beginPath(); ctx.strokeStyle = strokeColor; ctx.fillStyle = fillColor ; ctx.lineWidth = Math.sRandom(1,3); ctx.moveTo(P0.x,P0.y ); ctx.bezierCurveTo(P1.x, P1.y, iP2.x, iP2.y, iP3.x, iP3.y); ctx.stroke(); }, {x:1,y:1}); 


рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖред рдзреИрд░реНрдп, рдмрд╕ рдереЛрдбрд╝рд╛ рд╕рд╛ рдмрдЪрд╛ рд╣реИ!


рдЪрд░рдг 5 - рдирд╛рдХ


рдирд╛рдХ рд╣реА рдирд╛рдХ рд╣реИред рдЪрд▓реЛ рдЗрд╕реЗ рджреЛ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рддреЗ рд╣реИрдВ - рдПрдХ рдЫреЛрдЯрд╛ рд╡реГрддреНрдд, рдФрд░ рдПрдХ рддреНрд░рд┐рдХреЛрдгред рд╕рд░реНрдХрд▓ рдмрд╣реБрдд рдХрдо рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдЦреИрд░, рдордЬрд╝реЗ рдХреЗ рд▓рд┐рдПред
рдмреЗрд╢рдХ, рд╣рдо рд░рдВрдЧреЛрдВ рд╕рд╣рд┐рдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдорд┐рд╢реНрд░рдг рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рд╣рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдХ рдорд┐рд▓реЗрдВ - рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ рд╕рд┐рд░реНрдл рдПрдХ рд╕рдореЛрдЪреНрдЪред рд╣рдореЗрдВ рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдХреА рдмрд╣реБрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣реИ рдирд╛?

  //   -  ,   var chance = Math.sRandom(0, 100); if(chance < 98) { //  var scale = {x:Math.sRandom(0.9,1.3), y:Math.sRandom(0.9,1.3)}; //  var pointR ={x:Math.sRandom(4,5)*scale.x,y:Math.sRandom(-5,-4)*scale.y}; //  var pointL ={x:Math.sRandom(-4,-5)*scale.x,y:Math.sRandom(-5,-4)*scale.y}; //  var bottomPoint ={x:0,y:Math.sRandom(5,6)*scale.y}; // add(function(ctx){ ctx.beginPath(); ctx.strokeStyle = strokeColor; ctx.fillStyle = (Math.sRandom(0, 100) > 50 ? fillColor : strokeColor); ctx.lineWidth = Math.sRandom(1,3); ctx.moveTo(center.x + pointR.x,center.y + 5 + pointR.y); ctx.lineTo(center.x + bottomPoint.x,center.y + 5 + bottomPoint.y); ctx.lineTo(center.x + pointL.x,center.y + 5 + pointL.y); ctx.closePath(); ctx.fill(); ctx.stroke(); }, {x:1,y:1}); } else { //  add(function(ctx){ drawircle(ctx, {x:0,y:0}, Math.sRandom(7, 10), strokeColor, strokeColor, 1); }, {x:1,y:1}); } 


рд╣рдорд╛рд░реА рдмрд┐рд▓реНрд▓реА рдзреАрд░реЗ-рдзреАрд░реЗ рдмрд┐рд▓реНрд▓реА рдореЗрдВ рдмрджрд▓ рд░рд╣реА рд╣реИред рдпрд╣ рдЖрдирдВрджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред



рдЪрд░рдг 6 - рдЖрдВрдЦреЗрдВ


рдЖрдВрдЦреЗрдВ рдЬрдЯрд┐рд▓ рд╣реИрдВред рдирд╣реАрдВ, рдпрд╣ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ - рд╕рд┐рд░реНрдл рджреЛ рдмреЗрдЬрд┐рдпрд░ рдШрдЯрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдПрдХ рдмрдВрдж рдЖрдВрдЦ рдЬреЛрдбрд╝рдиреЗ рдХреА рднреА рдЬрд░реВрд░рдд рд╣реИ, рдмрд┐рд▓реНрд▓реА рд╕реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдПрдХ рдЖрдВрдЦ рднреА рдЦреЛрд▓ рд╕рдХрддреА рд╣реИред рдФрд░ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдмрд╛рд░ рд╕рд┐рд░реНрдл рдПрдХ рдмрд┐рд▓реНрд▓реА, рдХреЛрдИ рдХреЛрдб рдирд╣реАрдВред рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкрд╛рдардХ рдХреЛ рдкрд╛рда рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдмреЛрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред рдЕрдВрдд рдореЗрдВ рд╕реНрд░реЛрдд рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдФрд░ рд╣рдо рд╕рд┐рд░реНрдл рдпрд╣ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖред



рдмрд┐рд▓реНрд▓реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдФрд░ рд╕рдЬрд╛рд╡рдЯ рдЬреЛрдбрд╝реЗрдВред

рдЪрд░рдг 7 - рдЧрд╛рд▓ рдкрд░ рдореВрдВрдЫ рдЕрдВрдХ


рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдРрд╕реЗ рднреА рд╣реИрдВред рдШрдЯрдирд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ 100% рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдБ рдХреЛрдб рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рд╣реИред
рдХреЛрдб рд╕рд░рд▓ рд╣реИ - рдирд╛рдХ рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рджреВрд░реА рдкрд░ рдмрд╕ рддрд┐рддрд░ рдмрд┐рддрд░ рдЕрдВрдХред

  if(Math.sRandom(0, 100) > 60) { add(function(ctx){ for (var i = 0; i < Math.sRandom(5, 7); i++) { var P = {x:Math.sRandom(20, 40),y:Math.sRandom(0, 30)}; drawircle(ctx, P, 1, strokeColor, strokeColor, 1); } for (var i = 0; i < Math.sRandom(5, 7); i++) { var P = {x:-Math.sRandom(20, 40),y:Math.sRandom(0, 30)}; drawircle(ctx, P, 1, strokeColor, strokeColor, 1); } }, {x:1,y:1}); } 


рдкрд░рд┐рдгрд╛рдо:


рдЪрд░рдг 8 - рдмреИрдВрдЧ


рдмрд╕ рдХрднреА-рдХрднреА рд╣рдо рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ-рджреЛ рд▓рд╛рдЗрдиреЗрдВ рдЦреАрдВрдЪрддреЗ рд╣реИрдВред рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ, рд╣рдо рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

 if(Math.sRandom(0, 100) > 75) { add(function(ctx){ for (var i = 0; i < Math.sRandom(3, 5); i++) { //      var radiusVector = {x:0,y:-radius}; //     //       radiusVector = VectorRot(radiusVector, Math.sRandom(-0.01, 0.01)) //   var P0 = {x:Math.sRandom(-25, 25), y: radiusVector.y}; var P1 = {x:Math.sRandom(-25, 25), y: Math.sRandom(-50, -40)}; //  var lineWidth = Math.sRandom(0.5, 1.5); // drawLine(ctx, P0, P1, strokeColor, strokeColor, lineWidth); } }, {x:1,y:1}); } 


рдорд╣рд╛рди, рд╕рд╣реА?



рдЪрд░рдг 8 - рдмреЗрд▓ рдпрд╛ рдзрдиреБрд╖


рдЦреИрд░, рдпрд╣ рд╕рд┐рд░реНрдл рдордиреЛрд░рдВрдЬрди рдХреЗ рд▓рд┐рдП рд╣реИ, рдореИрдВрдиреЗ рдФрд░ рдЕрдзрд┐рдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЛрдЪрд╛, рдФрд░ рдПрдХ рдзрдиреБрд╖ рдФрд░ рдШрдВрдЯреА рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдХрдбрд╝рд╛рдИ рд╕реЗ рдиреНрдпрд╛рдп рдордд рдХрд░реЛ, рдореБрдЭреЗ рдордЬрд╝рд╛ рдЖ рд░рд╣рд╛ рд╣реИ :)
рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдХреЛрдб, рдлрд┐рд░ рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕реБрдВрджрд░ рдЪрд┐рддреНрд░ред

  // //    var chanceBottom = Math.sRandom(0, 100); if(chanceBottom > 50) { var chance = Math.sRandom(0, 100); if(chance > 90) { // -   + ,      var P = {x:0,y:radius}; var P0 = {x:Math.sRandom(20, 45), y:radius- Math.sRandom(13, 22)}; var P1 = {x:Math.sRandom(20, 45), y:radius+ Math.sRandom(13, 22)}; add(function(ctx){ var color = (Math.sRandom(0, 100) > 50 ? fillColor : strokeColor); ctx.beginPath(); ctx.strokeStyle = strokeColor; ctx.fillStyle = color; ctx.lineWidth = Math.sRandom(2, 5); ctx.moveTo(center.x + Px,center.y + Py); ctx.lineTo(center.x + P0.x,center.y + P0.y); ctx.lineTo(center.x + P1.x,center.y + P1.y); ctx.closePath(); ctx.stroke(); ctx.fill(); ctx.beginPath(); ctx.strokeStyle = strokeColor; ctx.fillStyle = color; ctx.lineWidth = Math.sRandom(2, 5); ctx.moveTo(center.x - Px,center.y + Py); ctx.lineTo(center.x - P0.x,center.y + P0.y); ctx.lineTo(center.x - P1.x,center.y + P1.y); ctx.closePath(); ctx.stroke(); ctx.fill(); drawircle(ctx, P, Math.sRandom(6, 12), (Math.sRandom(0, 100) > 50 ? fillColor : strokeColor), strokeColor, Math.sRandom(1, 3)); }, {x:1,y:1}); } } else { // var chance = Math.sRandom(0, 100); if(chance > 90) { // - ,   .    ,  ,    var P = {x:0,y:radius}; var P0 = {x:Math.sRandom(8, 15), y:radius+ Math.sRandom(23, 29)}; var P1 = {x:-P0.x, y:P0.y}; var P3 = {x:0,y:P0.y + Math.sRandom(0, 7)}; add(function(ctx){ drawircle(ctx, P3, Math.sRandom(2, 6), (Math.sRandom(0, 100) > 50 ? fillColor : strokeColor), strokeColor, Math.sRandom(1, 3)); var color = (Math.sRandom(0, 100) > 50 ? fillColor : strokeColor); ctx.beginPath(); ctx.strokeStyle = strokeColor; ctx.fillStyle = color; ctx.lineWidth = Math.sRandom(2, 5); ctx.moveTo(center.x + Px,center.y + Py); ctx.lineTo(center.x + P0.x,center.y + P0.y); ctx.lineTo(center.x + P1.x,center.y + P1.y); ctx.closePath(); ctx.stroke(); ctx.fill(); }, {x:1,y:1}); } } 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЖрдХрд╛рд░ред
рдХреЛрдб рдЙрдмрд╛рдК рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рдмрд┐рд▓реНрд▓рд┐рдпрд╛рдВ рдирд╣реАрдВ рдереАрдВ, рдПрдХ рдзрдиреБрд╖ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рд▓реНрд▓реА рд╣реЛ!



рдирд┐рд╖реНрдХрд░реНрд╖


рдЦреИрд░, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреА рдХрд╣рд╛рдиреА рдЦрддреНрдо рдХреАред
рдпрд╣рд╛рдБ github рдкрд░ рдХреЛрдб рд╣реИ: github.com/MagistrAVSH/random-cat
рд▓реЗрдХрд┐рди рд╕рднреА рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо, рдЖрдк рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: magistravsh.imtqy.com/random-cat
рдФрд░ рдЕрдм рдореЙрдирд┐рдЯрд░ рд╕реЗ рддрд┐рддрд░ рдмрд┐рддрд░, рдФрд░ рдмрд┐рд▓реНрд▓реА рдХреЛ рд╕реНрдЯреНрд░реЛрдХ! :)

Source: https://habr.com/ru/post/In195142/


All Articles