2015-12-19 9 views
7

HTML5キャンバスで四角形を使用してピラミッドを作成しようとしていますが、半分のアルゴリズムしか持っていません。唯一の問題は3日後に数学の能力が不足していることです。適切な数式を見つけることができました。四角でピラミッドを構築するアルゴリズム

これは私が持っているものです。コードのコメントを確認して、アルゴリズムのどの部分を変更する必要があるか確認できます。

var canvas = document.getElementById('canvas'); 
var ctx = canvas.getContext('2d'); 
var W = 1000; var H = 600; 
var side = 16; 

canvas.width = W; 
canvas.height = H; 

     function square(x, y) { 
      ctx.fillStyle = '#66FF00'; 
      ctx.fillRect(x, y, side, side); 
      ctx.strokeStyle = '#000'; 
      ctx.strokeRect(x, y, side, side); 
     } 

     function draw() { 
      ctx.fillRect(0, 0, W, H); 
      ctx.save(); 

      for(var i = 0; i < 30; i++) { 
       for(var j = 0; j < i + 1; j++) { 
        square(
         //Pos X  
         //This is what we have to change to 
         //make it look like a pyramid instead of stairs 
         W/2 - ((side/2) + (j * side)), 


         //Pos Y 
         side * (i + 1) 
        ); 
       } 
      } 

      ctx.restore(); 
     } 

     //STARTS DRAWING 
     draw(); 

これはjsfiddleで動作するコードであるので、我々はそれを試すことができます。

https://jsfiddle.net/g5spscpu/

所望の結果は次のとおりです。

enter image description here

まあ、私は大好きです誰かが私に手を差し伸べることができれば、私の脳は燃えている。あなたがしてX位置のための式でiインデックスを使用する必要が

答えて

8

W/2 - ((side/2) + ((j - i/2) * side)) 

はそれが私は多くのことを試してみましたが、私が言ったように、達することができなかった、でありhttps://jsfiddle.net/9esscdkc/

+0

を見ますこのような簡単な結論は、時には、あなたはあなたが少しだけプッシュを与えるために他人を必要とするので、あなたは前進し続けることができます。どうもありがとうございます –

関連する問題