目录
1.介绍
2.问题描述
3.解决思路
4.解决方案
5.代码
1 介绍
画一个二维数组图的思路
2 问题描述
给定了画图对象的高端、x间距、y间距,以及初始化坐标 x,y 画出 m*n的图形
3 解决思路
思路图如下
如图所示,此时
401的坐标为(0,0) 402的坐标为(x+房宽+间距x,0) 403的坐标为(x+房宽*2+间距x*2,0)
301的坐标为(0,y+房高+间距y) 302的坐标为(x+房宽+间距x, y+房高+间距y)
303(x+房宽*2+间距x*2, y+房高+间距y)
假设共有a层楼
可以得到第m层楼的第n间房的坐标为( x+房宽*(n-1)+间距x*(n-1),y+房高*(a-m)+间距y*(a-m) )
即( x+(房宽+间距x)*(n-1),y+(房高+间距y)*(a-m) )
4 代码
var x=0,y=0; // 定义初始坐标 x ,y
var roomH=10,roomL=10; //定义房高为roomH, 房宽为roomL
var marginX=5,marginY=5; // 定义x轴间距:marginX,y轴间距:marginY
var floorTotal=4,roomsInFloor=3;// 定义总楼层数 floorTotal,每层房间数:roomsInFloor
for(var m=floorTotal;m>=1;m--)// 循环楼层
{
for(var n=1;n< roomsInFloor;n++) // 循环房间个数
{
var roomx=x+(roomL+marginX)*(n-1);
var roomy=y+(roomH+marginY)*( floorTotal-m);
}
}