如何转换矩阵绘制的位图以对齐路径中心?

时间:2019-03-20 10:30:51

标签: android kotlin bitmap android-canvas

我在贝塞尔曲线的切线上绘制位图。问题是要在曲线的路径中心上对齐位图。引用了this solution,但没有帮助。

当前状态,如您所见,它与曲线的切线成直角旋转:

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

0 个答案:

没有答案