当前位置:  开发笔记 > 编程语言 > 正文

用正方形构建金字塔的算法

如何解决《用正方形构建金字塔的算法》经验,为你挑选了1个好方法。

我正在尝试使用HTML5 Canvas中的方块来构建金字塔,我有一个半工作的算法,唯一的问题是在三天之后并且缺乏数学能力我无法找到合适的公式.

这是我所拥有的,检查代码注释,以便您可以看到我们必须更改的算法的哪个部分.

 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/

期望的结果是:

在此输入图像描述

好吧,如果有人能帮助我,我的大脑正在燃烧,我会很高兴.



1> 6502..:

您需要i在X位置的公式中使用索引:

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

请参阅https://jsfiddle.net/9esscdkc/

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有