路径点不会相应地移动到比例因子

时间:2015-06-03 10:33:48

标签: android

我正在做化妆申请。应用程序可以检测脸部的某些部分,例如眉毛和嘴巴,并使用检测路径将它们绘制成一条线。用户可以通过移动点来改变路径。但是当我进行缩放变焦时,我有一个问题,图像和线条被完美地缩放,但是在缩放后我无法移动该点。当这些点在开始时被检测到时,它们似乎保持在相同的点上。

这是应用示例的图片。 enter image description here

我使用onScale方法中的比例因子来缩放画布。

我脸上各有一个部分。他们有一个点和绘制方法来画线。我不知道如何根据缩放操作计算比例因子,以及每条线的点以相应地将点移动到比例因子。

这是主画布的绘制方法。

    float pivotX, pivotY;
    pivotX = width / 2;
    pivotY = height / 2;

    //draw and 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);

这是眉毛的绘制方法

    public void draw(Canvas canvas) {
    for (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);

}

0 个答案:

没有答案