i'm making makeup application. application can detect parts on face, such eyebrow , mouth, , draw them line, using path detection. user can change path moving points. have problem when i'm making pinch zooming, image , lines zoomed perfectly, can't move point after zooming. points seem stay @ same points when detected @ beginning.
this picture of example of app.
i use scale factor onscale method zoom canvas.
i have class of each part on face. have points , draw method draw line. don't know how calculate scale factor, zooming operation, , points of each line move points accordingly scale factor.
this draw method of main canvas.
float pivotx, pivoty; pivotx = width / 2; pivoty = height / 2; //draw , translate canvas canvas.save(); canvas.translate(mposx, mposy); canvas.scale(mscalefactor, mscalefactor, pivotx, pivoty); canvas.drawbitmap(mybitmap, 0, 0, null); //draw eyebrow leftadjustbrow.draw(canvas); rightadjustbrow.draw(canvas);
and draw method of eyebrow
public void draw(canvas canvas) { (pointf point : points) { canvas.drawpoint(point.x, point.y, paintpoint); } path path = new path(); path.moveto(points[0].x, points[0].y); path.lineto(points[1].x, points[1].y); path.moveto(points[1].x, points[1].y); path.lineto(points[2].x, points[2].y); path.moveto(points[2].x, points[2].y); canvas.drawpath(path, paint); }
Comments
Post a Comment