I need to draw 2 lines on a canvas. Lines should be drawn using the same coordinates , and the second line should be the result of rotating the first line 45 degrees around the Y axis. The result should look like this:

This is my code:
Matrix matrix = new Matrix(); matrix = canvas.getMatrix(); mCamera = new Camera(); canvas.drawText("In the name of God", 30, 100, redPaint); mCamera.rotateY(45); mCamera.getMatrix(matrix); matrix.preTranslate(30, 100);
But the code result above:

You can see that the coordinates of the lines are different . So what did I do wrong? I assume this is caused by invalid arguments for matrix.preTranslate() .
Update
I am changing my code as follows:
canvas.drawText("In the name of God", 30, 100, redPaint); mCamera.rotateY(45); mCamera.getMatrix(matrix); matrix.preTranslate(-30, -100); matrix.postTranslate(30, 100); canvas.setMatrix(matrix); canvas.drawText("In the name of God", 0, 0, greenPaint);
or how:
canvas.drawText("In the name of God", 30, 100, redPaint); mCamera.rotateY(45); mCamera.getMatrix(matrix); matrix.preTranslate(-30, -100);
or how:
canvas.drawText("In the name of God", 30, 100, redPaint); mCamera.rotateY(45); mCamera.getMatrix(matrix); matrix.preTranslate(-30, -100);
And for all three of the above codes, the result is as follows:

I assume that the second text is out of range or beyond the status bar , and therefore it is not displayed.
Then change my code to:
mCamera.rotateY(45); mCamera.getMatrix(matrix); matrix.preTranslate(-30, -100); matrix.postTranslate(30, 100); canvas.setMatrix(matrix); canvas.drawText("In the name of God", 30, 100, greenPaint);
result:
