Я рисую растровое изображение на касательной для кривой Безье. Проблема в том, чтобы выровнять растровое изображение по центру пути кривой. Ссылка на это решение , но не помогла.
Текущее состояние, как вы видите, повернуто на прямой угол касательной к кривой:
Как это должно выглядеть (извините за навыки рисования). Точка должна быть в центре пути:
Как это выглядит в коде:
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
)
}
Вопрос : как сместить растровое изображение в этом направлении на половину его высоты на основе вращения матрицы?