水泡动画模拟(Marching Cubes)
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)的更多相关文章
- 用POP动画模拟真实秒钟摆动效果
用POP动画模拟真实秒钟摆动效果 静态图: 动画图: 此处用到了POP中的Spring系列动画,现提供源码如下: SecondClockView.h 与 SecondClockView.m // // ...
- Marching squares & Marching cubes
提要 Marching squares 主要是用于从一个地图(用二维数组表示)生成轮廓的算法.Marching cubes则相应的是在空间生成网格的方法.最常见的应用就是天气预报中气压图的生成.还经常 ...
- WPF随笔(九)--使用路径动画模拟管道流体流向
原文:WPF随笔(九)--使用路径动画模拟管道流体流向 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lordwish/article/detail ...
- 使用css3的动画模拟太阳系行星公转
本文介绍使用css3的animation画一个太阳系行星公转的动画,再加以改进,讨论如何画椭圆的运行轨迹.然后分析京东和人人网使用animation的实际案例,最后结合css3的clip-path做一 ...
- JavaScript动画-模拟拖拽
模拟拖拽的原理: x1等于div.offsetLeft y1等于div.offsetTop x2等于ev.clientX(ev表示event事件) y2等于ev.clientY 当我们在方块上按下鼠标 ...
- 闪电动画模拟(Dielectric Breakdown Model)附源码
当两个物体之间存在较大的电势差时会出现放电现象,比如生活中常见的闪电现象,闪电形成的条件就是云层积累了大量负电荷之后与地面之间形成了强大的电势差.目前关于闪电建模的方法比较少,下面介绍一种利用电介击穿 ...
- 使用CSS3动画模拟实现小球自由落体效果
使用纯CSS代码模拟实现小球自由落体效果: html代码如下: <div id="ballDiv"> <div id="ball">&l ...
- jQuery插件css3动画模拟confirm弹窗
相比浏览器自带的alert.confirm,能力所及,我更喜欢所有的东西都是自定义:首先在head标签(当然喜欢其他地方自己看着办)内引入插件样式表和js.<link rel="sty ...
- wow.js让css3动画变动更有趣(滚动页面动画模拟懒加载特效)
CSS3的出现给网站页面增加了活力,网站增色不少,有这么小小的一款插件就能做出很多动画效果. 最重要的是它:简单易用.轻量级.无需 jQuery......他就是wow.js 地址:https://d ...
随机推荐
- .NET跨平台之Sake和KoreBuild
最近在了解Asp.net Core 1.0(也可称为Asp.net5\Asp.net vNext)的跨平台,发现了两个新的新东西:Sake和KoreBuild(或者已经出了很久). 通过国内某度查询资 ...
- 扩展lamda表达中distinct按照字段去除重复
首先,我们定义一个Student类来测试. public class Student { public int ID { get; set; } public string Name { get; s ...
- linux下安装mysql
下载Mysql包 因为mysql比较大,我们不能像安装nginx和php那样,通过下载源码,编译成二进制安装.mysql安装比php和nginx稍微麻烦一点. 这里mysql我们直接下载编译好的二进制 ...
- HibernateUtil工具类
import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import org.slf4j.Logger; ...
- struts通过action返回json
其实struts2通过action返回json挺简单的,但是就是老要忘,所以索性写在博客上.好的,开始. 首先是引入必须的jar包: struts2-json-plugin-2.3.24.jar 然后 ...
- 如何在MAC OS X下安装配置java开发工具
简介: Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语 ...
- java静态方法调用&&构造函数&&静态块
静态方法,也就是使用static声明的方法,在虚拟机启动加载类的时候就进行了创建,所以使用到静态方法时,直接使用类名点静态方法即可调用.java在执行静态方法前,不会调用构造函数:构造函数是在实例化j ...
- 打印发现function toUpperCase() { [native code] }
var s='hello' undefined s.toUpperCase function toUpperCase() { [native code] } s.toUpperCase() " ...
- 【UI插件】简单的日历插件(下)—— 学习MVC思想
前言 我们上次写了一个简单的日历插件,但是只是一个半成品,而且做完后发现一些问题,于是我们今天尝试来解决这些问题 PS:距离上次貌似很久了 上次,我们大概遇到哪些问题呢: ① 既然想做一套UI库,那么 ...
- 如何基于OM模型使用C#在程序中给SharePoint的BCS外部数据类型的字段赋值
概述: 外部内容类型和数据,SharePoint从2010这个版本开始就对BCS提供非常强大的支持,点点鼠标就可以取代以前直接编辑XML的方式来设置SharePoint到SQL数据库的连接.非常方便地 ...