Canvas.drawBitmapMesh (Bitmap bitmap, int meshWidth, int meshHeight, float[] verts, int vertOffset, int[] colors, int colorOffset, Paint paint)中的参数verts到底是什么意思?网上搜到说是像素新的位置,转移像素位置,但是到底转移哪个点的位置?

解决方案 »

  1.   

    verts是定点的数组,大小为(meshWidth + 1)*(meshHeight + 1)。关于verts最好去看一下opengl红皮书的前三章  加深了解。
      

  2.   

    vert的意思是森林中的草木
    public void drawBitmapMesh (Bitmap bitmap, int meshWidth, int meshHeight, float[] verts, int vertOffset, int[] colors, int colorOffset, Paint paint) Since: API Level 1 Draw the bitmap through the mesh, where mesh vertices are evenly distributed across the bitmap. There are meshWidth+1 vertices across, and meshHeight+1 vertices down. The verts array is accessed in row-major order, so that the first meshWidth+1 vertices are distributed across the top of the bitmap from left to right. A more general version of this methid is drawVertices().Parameters
    bitmap  The bitmap to draw using the mesh 
    meshWidth  The number of columns in the mesh. Nothing is drawn if this is 0 
    meshHeight  The number of rows in the mesh. Nothing is drawn if this is 0 verts  Array of x,y pairs, specifying where the mesh should be drawn. There must be at least (meshWidth+1) * (meshHeight+1) * 2 + meshOffset values in the array vertOffset  Number of verts elements to skip before drawing 
    colors  May be null. Specifies a color at each vertex, which is interpolated across the cell, and whose values are multiplied by the corresponding bitmap colors. If not null, there must be at least (meshWidth+1) * (meshHeight+1) + colorOffset values in the array. 
    colorOffset  Number of color elements to skip before drawing 
    paint  May be null. The paint used to draw the bitmap  
      

  3.   

    mesh是网格,蒙皮
    相当于从原图里取出(meshWidth + 1) * (meshHeight + 1)个点放到verts中
    参数里面没有体现初始位置,初始位置就是固定的,是把verts的点刚好铺在原图上对应的位置
    新的像素位置就是verts,改变verts就能扭曲图片
    比喻成皮肤,捏皮肤就能改变皮肤下面的东西
      

  4.   

    virt 是 Virtex 的简写,是顶点的意思!!!