蜂窝式排列方式

摘要:根据传入不同的参数,智能的显示蜂窝式布局,效果如下图:

制作步骤:

1、在库中建一个mc 绑定名称为“myMC”  

2、建一个文档类,代码如下:

 1 package
 2 {
 3     import flash.display.Sprite;
 4
 5     /**
 6      * @author chb
 7      * @data 2015-8-26
 8      * @email [email protected]
 9      */
10
11     public class ReseauLayout extends Sprite
12     {
13         private var container:Sprite;
14         public function ReseauLayout ()
15         {
16             init ();
17         }
18
19         private function init ():void
20         {
21             container = new Sprite();
22             this.addChild (container);
23             container.x = stage.stageWidth * 0.5;
24             container.y = 200;
25             setLayout (15,175,3);
26         }
27         /*
28         *@param    _count 六边形的个数
29         *@param    itemW  六边形宽
30         *@param    gap    间隔
31         *@param    type   蜂窝的类型,一组多少个六边形
32         *@param    num    每一组中的编号
33         *
34         */
35
36         private function setLayout (_count:Number,itemW:Number,gap:Number,type:Number = 3,num:Number = 1):void
37         {
38             if (_count > 10)
39             {
40                 type = 5;
41             }
42
43             var itemY:Number = itemW * Math.cos(30*Math.PI/180);//表示每两个六边形之间的y轴差距
44             var itemX:Number = itemW * 0.5;//表示每两个六边形之间的x轴差距
45
46             for (var i:Number = 0; i<_count; i++)
47             {
48                 var item:Sprite = new myMC();//六边形单元,库里面绑定
49                 container.addChild (item);
50                 var groupNum:Number = int(i/type);
51                 if (num == 1)
52                 {
53                     item.x = groupNum*(itemW+gap);
54                     item.y = itemY * 2;
55                 }
56                 else if (num == 2)
57                 {
58
59                     item.x = itemW/2+groupNum*(itemW+gap);
60                     item.y = itemY * 2 - itemY - gap;
61
62                 }
63                 else if (num == 3)
64                 {
65                     item.x = itemW/2+groupNum*(itemW+gap);
66                     item.y = itemY * 2 + itemY + gap;
67                 }
68                 else if (num == 4)
69                 {
70                     item.x = itemW/2+groupNum*(itemW+gap) + itemW/2 + gap;
71                     item.y = itemY * 2 - itemY * 2 - gap*2;
72                 }
73                 else if (num == 5)
74                 {
75                     item.x = itemW/2+groupNum*(itemW+3) + itemW/2 + gap;
76                     item.y = itemY * 2 + itemY * 2 + gap*2;
77                 }
78                 num++;
79                 if (num == (type+1))
80                 {
81                     num = 1;
82                 }
83             }
84         }
85
86     }
87
88 }
时间: 2024-08-29 16:27:06

蜂窝式排列方式的相关文章

java代码实现:12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?

此题参考与其他人思路, 2个解题方式. 1. 1 /** 2 * 用java代码实现:12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种? 3 * 状态树方式解 4 * 用状态生成树的方式来做的,先把12个人按从低到高一次编号, 5 * 从(1 ; 2)出发,加入3和4的时候生成(1,3 ; 2,4)和(1,2 ; 3,4), 6 * 然后加入5和6,分别从前面的两个状态出发,可以生成5种状态,就是说6个人时有5种排列 7 * @author

OpenGL 像素在内存中的排列方式

在OpenGL中所有和图像像素有关的API(包括glTexImage2D, glReadPixels等)第一个像素从左下角开始,从左到又一次排列,满了从下到上排列. 这个和Windows 下惯用的左上角开始的像素排列是上下颠倒的.所以使用glTexImage2D最后一个参数data,要注意你传进去的像素是左上角,还是左下角排列的. SDL的Surface是按Windows惯用的左上角开始排列的,所以你直接把SDL的Surface作为glTexImage2D的数据的时候,你会感觉UV坐标上下颠倒了

C++12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?

#include <iostream> #define DefaultSize 9 //问题描述: //12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种? using namespace std; class Grial { public: Grial(int sz=DefaultSize) { visted = new bool [sz]; data = new int [sz]; size = sz; for(int i=1;i<

lightinthebox 批量设置分类产品排列方式为List、Grid、Gallery

lightinthebox 批量设置分类产品排列方式为Grid categories_type = '1'表示List,2表示Grid,3表示Gallery方式 设置单个分类 UPDATE categories SET categories_list_types = '1' WHERE categories_id =1; UPDATE categories SET categories_list_types = '2' WHERE categories_id =1; UPDATE categor

【编程题目】四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())

46.搜狐(运算):四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(()) 跟12个人排高矮的题目差不多. 用 0 表示 “(”,用 1 表示“)” 则需要数字二进制最低8位有 4个1和 4个0,且从低位到高位对1 和 0 计数时,0 出现的次数不能超过 1 出现的次数. /* 46.搜狐(运算): 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(()) */ #include <stdio.h> int c_bits(int n) { int re

1.2 Illustrator多文档的几种排列方式

本节课将为您演示,在多个文档的情况下,文档的各种排列方式.当前窗口包含三份文档.依次点击[窗口 > 排列 > 平铺]命令. 点击[平铺]命令,将所有打开的文档,以平铺的方式紧密排列. 接着依次点击[窗口 > 排列 > 在窗口中浮动]命令. 点击[在窗口中浮动]命令,将当前的文档转换为浮动窗口. 接着依次点击[窗口 > 排列 > 全部在窗口中浮动]命令. 点击[全部在窗口中浮动]命令,将所有打开的文档转换为浮动窗口. 接着依次点击[窗口 > 排列 > 合并所有

MySQL8.0:倒序索引数据的数据排列方式

我们知道普通索引数据的排列方式是从小到大的,而倒序索引应该是从大到小的,那么如何证明呢?下面我们就来一窥物理文件的组织方式,我们用一个小索引就在一个块里面来证明. 一.准备数据640?wx_fmt=png 二.通过执行计划证明这个比较简单,我们使用using index type index 来访问索引,发现他们确实是相反. 640?wx_fmt=png 三.通过工具证明执行 ./innblock tab_desc.ibd scan 16得到结果:640?wx_fmt=png 通过INNODB_

求n组括号的排列方式 --- 卡特拉数

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n = 3, a solution set is: "((()))", "(()())", "(())()", "()(())", "()()()" void ge

【c++程序】判断数组的排列方式

#include<iostream> using namespace std; int find(int,int [],int); int find1(int,int [],int); bool add(int a[],int n); int main() { int a[]={22,44,66,88,1,32,64}; if(add(a,7)==1) { cout<<"采用二分算法得到的位置为"<<find1(44,a,7)+1<<en