算法:画图方案

目录

        1.介绍

        2.问题描述

        3.解决思路

        4.代码

1    介绍

        画一个二维数组图的思路

2    问题描述

        给定了画图对象的高端、x间距、y间距,以及初始化坐标 x,y 画出 m*n的图形

3    解决思路

        思路图如下

      image

         如图所示,此时

               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);

    }

}
View Code
原文地址:https://www.cnblogs.com/zhaord/p/4229309.html