Marching Cubes算法是三维离散数据场中提取等值面的经典算法,其主要应用于医学领域的可视化场景,例如CT扫描和MRI扫描的3D重建等。

  算法主要的思想是在三维离散数据场中通过线性插值来逼近等值面,具体如下:三维离散数据场中每个栅格单元作为一个体素,体素的每个顶点都存在对应的标量值。如果体素顶点上的值大于或等于等值面值,则定义该顶点位于等值面之外,标记为“0”;而如果体素顶点上的值小于等值面值,则定义该顶点位于等值面之内,标记为“1”。由于每个体素单元有8个顶点,那么共存在2^8 = 256种情形,下图是Marching Cubes算法的15种基本情形,其他241种情形可以通过这15种基本情形的旋转、映射等方式实现。

  每个体素单元上顶点和边的索引规则如下图左所示,假如体素下方的顶点3的值小于等值面值,其他顶点上的值都大于等值面值(如下图右所示),那么我们可以生成一个与体素边2,3,11相交的三角面片,而三角面片顶点的具体位置则需要根据等值面值和边顶点3-2,3-0,3-7的值线性插值计算得到。

  对于与等值面存在交点的体素边,交点坐标用P表示,P1、P2代表边上两个端点的坐标,V1、V2代表这两个端点上的值,V代表等值面值,那么交点坐标的计算公式如下:

P = P1 + (V – V1)·(P2 – P1)/(V2 – V1)

  算法第一步:通过edgeTable表判断等值面和体素单元哪一条边相交

  体素单元顶点状态的索引号定义规则如下:

cubeindex = ;
if (V[] < isolevel) cubeindex |= ;
if (V[] < isolevel) cubeindex |= ;
if (V[] < isolevel) cubeindex |= ;
if (V[] < isolevel) cubeindex |= ;
if (V[] < isolevel) cubeindex |= ;
if (V[] < isolevel) cubeindex |= ;
if (V[] < isolevel) cubeindex |= ;
if (V[] < isolevel) cubeindex |= ;

  以上图所示为例,仅顶点3标记为“1”,其他顶点标记为“0”,那么体素单元的顶点状态为0000 1000或者8,通过查找表得到edgeTable[8] = 1000 0000 1100,意味着体素单元的边2,3,11和等值面相交,然后通过线性插值计算各个交点的位置。

  算法第二步:通过triTable表生成对应三角面片的组成情况

  还是以上图所示为例,通过查找表得到triTable[8] = {3, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},意味着该种顶点状态可以生成三角面片(3, 11, 2),代表三角面片的3个顶点为边3,11,2和等值面相交的交点。

  经过上述步骤之后,我们可以得到等值面的点面信息。为了进一步完善显示效果,需要调整顶点法向。假设顶点(i, j, k)上的值为f(i, j, k),采用中心差分方法可以计算该点处的梯度矢量:

  对G进行归一化,得到顶点(i, j, k)上的单位法向量,然后对体素单元上8个顶点的法向量进行线性插值就可得到三角面片各个顶点的显示法向量。

edgeTable查找表

int edgeTable[]={
0x0 , 0x109, 0x203, 0x30a, 0x406, 0x50f, 0x605, 0x70c,
0x80c, 0x905, 0xa0f, 0xb06, 0xc0a, 0xd03, 0xe09, 0xf00,
0x190, 0x99 , 0x393, 0x29a, 0x596, 0x49f, 0x795, 0x69c,
0x99c, 0x895, 0xb9f, 0xa96, 0xd9a, 0xc93, 0xf99, 0xe90,
0x230, 0x339, 0x33 , 0x13a, 0x636, 0x73f, 0x435, 0x53c,
0xa3c, 0xb35, 0x83f, 0x936, 0xe3a, 0xf33, 0xc39, 0xd30,
0x3a0, 0x2a9, 0x1a3, 0xaa , 0x7a6, 0x6af, 0x5a5, 0x4ac,
0xbac, 0xaa5, 0x9af, 0x8a6, 0xfaa, 0xea3, 0xda9, 0xca0,
0x460, 0x569, 0x663, 0x76a, 0x66 , 0x16f, 0x265, 0x36c,
0xc6c, 0xd65, 0xe6f, 0xf66, 0x86a, 0x963, 0xa69, 0xb60,
0x5f0, 0x4f9, 0x7f3, 0x6fa, 0x1f6, 0xff , 0x3f5, 0x2fc,
0xdfc, 0xcf5, 0xfff, 0xef6, 0x9fa, 0x8f3, 0xbf9, 0xaf0,
0x650, 0x759, 0x453, 0x55a, 0x256, 0x35f, 0x55 , 0x15c,
0xe5c, 0xf55, 0xc5f, 0xd56, 0xa5a, 0xb53, 0x859, 0x950,
0x7c0, 0x6c9, 0x5c3, 0x4ca, 0x3c6, 0x2cf, 0x1c5, 0xcc ,
0xfcc, 0xec5, 0xdcf, 0xcc6, 0xbca, 0xac3, 0x9c9, 0x8c0,
0x8c0, 0x9c9, 0xac3, 0xbca, 0xcc6, 0xdcf, 0xec5, 0xfcc,
0xcc , 0x1c5, 0x2cf, 0x3c6, 0x4ca, 0x5c3, 0x6c9, 0x7c0,
0x950, 0x859, 0xb53, 0xa5a, 0xd56, 0xc5f, 0xf55, 0xe5c,
0x15c, 0x55 , 0x35f, 0x256, 0x55a, 0x453, 0x759, 0x650,
0xaf0, 0xbf9, 0x8f3, 0x9fa, 0xef6, 0xfff, 0xcf5, 0xdfc,
0x2fc, 0x3f5, 0xff , 0x1f6, 0x6fa, 0x7f3, 0x4f9, 0x5f0,
0xb60, 0xa69, 0x963, 0x86a, 0xf66, 0xe6f, 0xd65, 0xc6c,
0x36c, 0x265, 0x16f, 0x66 , 0x76a, 0x663, 0x569, 0x460,
0xca0, 0xda9, 0xea3, 0xfaa, 0x8a6, 0x9af, 0xaa5, 0xbac,
0x4ac, 0x5a5, 0x6af, 0x7a6, 0xaa , 0x1a3, 0x2a9, 0x3a0,
0xd30, 0xc39, 0xf33, 0xe3a, 0x936, 0x83f, 0xb35, 0xa3c,
0x53c, 0x435, 0x73f, 0x636, 0x13a, 0x33 , 0x339, 0x230,
0xe90, 0xf99, 0xc93, 0xd9a, 0xa96, 0xb9f, 0x895, 0x99c,
0x69c, 0x795, 0x49f, 0x596, 0x29a, 0x393, 0x99 , 0x190,
0xf00, 0xe09, 0xd03, 0xc0a, 0xb06, 0xa0f, 0x905, 0x80c,
0x70c, 0x605, 0x50f, 0x406, 0x30a, 0x203, 0x109, 0x0 };

triTable查找表

int triTable[][] =
{{-, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , , , , -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , , , , -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , , , , , , , , , , -},
{, , , , , , , , , , , , , , , -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , , , , , , , , , , -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , , , , -, -, -, -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{, , , -, -, -, -, -, -, -, -, -, -, -, -, -},
{-, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -}};

本文为原创,转载请注明出处:http://www.cnblogs.com/shushen

参考文献:

[1] William E. Lorensen and Harvey E. Cline. 1987. Marching cubes: A high resolution 3D surface construction algorithm. SIGGRAPH Comput. Graph. 21, 4 (August 1987), 163-169.

[2] http://graphics.stanford.edu/~mdfisher/MarchingCubes.html

水泡动画模拟(Marching Cubes)的更多相关文章

  1. 用POP动画模拟真实秒钟摆动效果

    用POP动画模拟真实秒钟摆动效果 静态图: 动画图: 此处用到了POP中的Spring系列动画,现提供源码如下: SecondClockView.h 与 SecondClockView.m // // ...

  2. Marching squares &amp; Marching cubes

    提要 Marching squares 主要是用于从一个地图(用二维数组表示)生成轮廓的算法.Marching cubes则相应的是在空间生成网格的方法.最常见的应用就是天气预报中气压图的生成.还经常 ...

  3. WPF随笔(九)--使用路径动画模拟管道流体流向

    原文:WPF随笔(九)--使用路径动画模拟管道流体流向 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lordwish/article/detail ...

  4. 使用css3的动画模拟太阳系行星公转

    本文介绍使用css3的animation画一个太阳系行星公转的动画,再加以改进,讨论如何画椭圆的运行轨迹.然后分析京东和人人网使用animation的实际案例,最后结合css3的clip-path做一 ...

  5. JavaScript动画-模拟拖拽

    模拟拖拽的原理: x1等于div.offsetLeft y1等于div.offsetTop x2等于ev.clientX(ev表示event事件) y2等于ev.clientY 当我们在方块上按下鼠标 ...

  6. 闪电动画模拟(Dielectric Breakdown Model)附源码

    当两个物体之间存在较大的电势差时会出现放电现象,比如生活中常见的闪电现象,闪电形成的条件就是云层积累了大量负电荷之后与地面之间形成了强大的电势差.目前关于闪电建模的方法比较少,下面介绍一种利用电介击穿 ...

  7. 使用CSS3动画模拟实现小球自由落体效果

    使用纯CSS代码模拟实现小球自由落体效果: html代码如下: <div id="ballDiv"> <div id="ball">&l ...

  8. jQuery插件css3动画模拟confirm弹窗

    相比浏览器自带的alert.confirm,能力所及,我更喜欢所有的东西都是自定义:首先在head标签(当然喜欢其他地方自己看着办)内引入插件样式表和js.<link rel="sty ...

  9. wow.js让css3动画变动更有趣(滚动页面动画模拟懒加载特效)

    CSS3的出现给网站页面增加了活力,网站增色不少,有这么小小的一款插件就能做出很多动画效果. 最重要的是它:简单易用.轻量级.无需 jQuery......他就是wow.js 地址:https://d ...

随机推荐

  1. java使用正则从爬虫爬的txt文档中提取QQ邮箱

    我的需求是从一堆文档中提取出qq邮箱,写了这篇帖子,希望能帮助和我有一样需求的人,谢谢!...... import java.io.BufferedReader; import java.io.Fil ...

  2. HTML5学习笔记

    参考资料:http://www.runoob.com/html/html-tutorial.html 1.html5声明.将此html文档标记为html5文档 <!DOCTYPE html> ...

  3. IOS 2D游戏开发框架 SpriteKit-->续(完善角色功能)

    一.说明       今天给角色精灵增加了子弹发射功能,增加了子弹与敌对精灵的碰撞检测,当角色精灵子弹与敌对精灵碰撞后,它们都会从屏幕上消失. 二.场景层SKScene的修改 1. 在初始化场景层的方 ...

  4. linux下c程序的链接、装载和库(2)

    5. 重定义错误. 一个最终的可执行文件里,绝对不允许出现两个同名的全局变量,也不允许出现同名的全局函数. 全局函数:只要不用 static 修饰符修饰的函数,全部都是全局的. 全局变量:函数外声明定 ...

  5. php实现设计模式之 命令模式

    <?php /* * 命令模式:(行为模式)将一个请求封装成一个对象(命令封装成对象),从而可以使用不同的请求对客户参数化(客户的不同请求,调不同的封装对象), * 对请求排序,或者记录请求日志 ...

  6. SharedPreferences漏洞, 无法避免,所以不要在里面存储敏感信息

     1. SharedPreferences漏洞, 无法避免,所以不要在里面存储敏感信息2. 数据存储检测,content://com.starcor.launcherInfo/deviceInfo&q ...

  7. ABP 初探 之 AbpSession 扩展

    Abp的权限管理是基于 Identity,所有的扩展也是基于 claims .claims 有许多默认属性,具体连接 关于 Identity的详细介绍,可以参考园友博客 继承 Microsoft.As ...

  8. 变通实现微服务的per request以提高IO效率(二)

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  9. 装配bean

    spring有三种装配bean的方式:隐式装配.java代码装配.xml装配 隐式装配最为省事方便,也称为自动化装配 这三种装配方式可以混搭着来用 在这里通过一个例子来讲述配置 CD的两个实现,一个是 ...

  10. Linux(Centos)之安装Java JDK及注意事项

    1.准备工作 a.因为Java JDK区分32位和64位系统,所以在安装之前必须先要判断以下我们的Centos系统为多少位系统,命令如下: uname -a 解释:如果有x86_64就是64位的,没有 ...