Как перевести матричный рисунок, чтобы выровнять центр пути? - PullRequest
0 голосов
/ 20 марта 2019

Я рисую растровое изображение на касательной для кривой Безье. Проблема в том, чтобы выровнять растровое изображение по центру пути кривой. Ссылка на это решение , но не помогла.

Текущее состояние, как вы видите, повернуто на прямой угол касательной к кривой:

enter image description here

Как это должно выглядеть (извините за навыки рисования). Точка должна быть в центре пути:

enter image description here

Как это выглядит в коде:

private fun drawThumb(canvas: Canvas) {
    calculateXY()
    mThumbBitmap?.let {
        val angleMatrix = Matrix()
        val distance = (mProgressPathMeasure.length * getCurrentX() / measuredWidth.toFloat())

        mProgressPathMeasure.getMatrix(
            distance,
            angleMatrix,
            PathMeasure.POSITION_MATRIX_FLAG + PathMeasure.TANGENT_MATRIX_FLAG
        )
        canvas.drawBitmap(it, angleMatrix, mPaintThumb)
    }
}

private fun calculateXY() {
    mProgressPathMeasure.getPosTan(
        mProgressPathMeasure.length * getCurrentX() / measuredWidth,
        mCurrentXY,
        mTan
    )
}

Вопрос : как сместить растровое изображение в этом направлении на половину его высоты на основе вращения матрицы?

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...