思路:设置正方形的中心点与边长,确定一个大的正方形,然后在大正方形内部绘制九个小正方形,并中间的小正方形涂成黑色,然后根据每个小正方形的中心点位置与边长,再在其内部绘制九个小正方形,如此递归绘制
void setup() { size(900, 900); } void draw() { background(255); drawCarpet(900/3, 0, 0);//此处900可以改成mouseX看看效果 } void drawCarpet(float sideLength, float startX, float startY) { noStroke(); for (int i=0; i<3; i++) {//横三行 for (int j=0; j<3; j++) {//竖三行 if (i==1&&j==1) {//只有中间的正方形填充黑色 fill(0); } else { noFill(); } rectMode(CENTER); rect(startX+sideLength/2+i*sideLength, startY+sideLength/2+j*sideLength, sideLength, sideLength); if (sideLength>10) {//边长<10就不再绘制 drawCarpet(sideLength/3, startX+i*sideLength, startY+j*sideLength); } } } }
processing&P5.js,web前端内容推荐
- JavaScript 静态方法和动态方法以及他们的不同
- 支付宝蚂蚁庄园小课堂答案最全最新更新
- JS手机端触摸事件、手势事件(touchstart、touchmove、touchend)
- [nodejs实战:校花网学妹图片采集+站点发布]二、数据的保存:fs.writeFile
- wordpress 获取置顶文章 获取随机文章 获取指定标签文章 获取指定分类文章
- 解决windows下sunlime text3的node.js [Decode error – output not utf8] 问题
- nodejs实战案例(Express框架+mongoDB)之5:用户注册,登陆
- Web前端性能优化教程05:网站样式和脚本
0 条评论。