Искажение растрового изображения только в вертикальном направлении

Я хочу исказить (поправьте меня, если это неправильное слово) растровое изображение, чтобы оно выглядело как глубина. Хороший способ визуализировать то, о чем я прошу, - это то, как титры «Звездных войн» расположены под углом, чтобы показать глубину.

Я пробовал следующее:

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();
8
задан mdupls 22 July 2014 в 17:28
поделиться