question: private float [ ] applyCurveXEffect ( float offset ) { for ( int i = 0 ; i < 6 ; i ++ ) for ( int j = 0 ; j < 51 ; j ++ ) { if ( mDirection == TouchDisableView . DIRECTION_RIGHT ) { meshVerts [ i * 102 + 2 * j ] = originVerts [ i * 102 + 2 * j ] ; meshVerts [ i * 102 + 2 * j + 1 ] = originVerts [ i * 102 + 2 * j + 1 ] + ( float ) ( SIN_A * ( 1 - offset ) * Math . sin ( originVerts [ i * 102 + 2 * j ] * originVerts [ i * 102 + 2 * j ] / SIN_lENGTH_FACTOR ) ) ; } else { meshVerts [ i * 102 + 2 * j ] = originVerts [ i * 102 + 2 * j ] ; meshVerts [ i * 102 + 2 * j + 1 ] = originVerts [ i * 102 + 2 * j + 1 ] + ( float ) ( SIN_A * ( 1 - offset ) * Math . sin ( originVerts [ i * 102 + 2 * j ] * originVerts [ i * 102 + 2 * j ] / SIN_lENGTH_FACTOR ) ) ; } } return meshVerts ; }
target:  f(x)=SIN_A*(1-offset)*sin(x*x/SIN_lENGTH_FACTOR) <p/> Notice: when x is in 0~720 , it works well. You can see the Graph through this link. https://www.google.com/?gws_rd=ssl#newwindow=1&q=y%3D64+sin(x*x%2F20000)+ <p/> for other screen resolution , may be need other function