At first, the picture looked like this:

Then I modified the postion of the vertices and the sprite became like this:
I originally thought it was a regular deformation, why is the picture distorted?
At first, the picture looked like this:

Then I modified the postion of the vertices and the sprite became like this:
This is an artifact of affine texture mapping. Here’s a sample project that implements a correctly skewed quad mesh & shader, which you can use for reference: GitHub - brandonjmatthews/unity-skew-quad: A simple Unity package that enables creation of a skewed quad in Unity without a affine texture mapping.
There are also other correction algorithms listed on the linked Wikipedia page. The cheapest “fix” is to subdivide your quad, but that will minimize the error rather than remove it entirely. This may be good enough for your purposes.
Note: The affine texture mapping referenced in the article is in the context of rasterizing triangles to the screen. This was an artifact present in old rendering engines, such as the PS1. The artifact you’re experiencing is the same problem, but doesn’t have to do with the underlying rendering engine, but rather that you’re distorting the vertices of the quad. If this were an issue with the render engine, the same artifact would appear when viewing a square quad from a shallow camera angle.
thank you very much