Я хочу исказить (поправьте меня, если это неправильное слово) растровое изображение, чтобы оно выглядело как глубина. Хороший способ визуализировать то, о чем я прошу, - это то, как титры «Звездных войн» расположены под углом, чтобы показать глубину.
Я пробовал следующее:
canvas.getMatrix().postSkew(kx,ky,px,py);
и
canvas.skew(sx,sy);
Но особого успеха я не добился. Вышеупомянутые методы, кажется, всегда преобразуют растровое изображение в параллелограмм. Есть ли способ вместо этого преобразовать растровое изображение в трапецию?
Вот фрагмент кода, который я взял из примеров, на которые мне указал Ромен.
canvas.rotate(-mOrientation[0] + mHeading, mCenterX, mCenterY);
camera.save();
if (mReverse) {
camera.translate(0.0f, 0.0f, mDepthZ * interpolatedTime);
} else {
camera.translate(0.0f, 0.0f, mDepthZ * (1.0f - interpolatedTime));
}
camera.rotateX(mOrientation[1]);
camera.applyToCanvas(canvas);
canvas.drawPath(mPath, mPaint);
canvas.drawCircle(mCenterX, mCenterY, mRadius - 37, mPaint);
camera.restore();