2

等角投影の形式でテキストをレンダリングするにはどうすればよいですか? 原則は理解していますが、これを行うためにプログラムで SpriteFont を実際に変換する方法がわかりません。

私が意味するものの例:

ここに画像の説明を入力

何を検索すればよいかさえわかりません。等角射影行列と 3D メッシュ フォントを使用してこれを達成できるようですが、2D で作業していることを考えると複雑すぎるようです。

何か案は?

4

2 に答える 2

2

SpriteBatch.Beginパラメータを取り、Matrix描画したスプライト ( を含むSpriteFont) を任意のプレーンに変換します。

残念ながら、スキュー マトリックスを作成する方法Matrixは提供されていません。Create*しかし、このようなマトリックスを手動で作成するのは簡単です。次のコードはテストされており、必要なものにかなり近いものです。

Matrix skew = Matrix.Identity;
skew.M12 = (float)Math.Tan(MathHelper.ToRadians(36.87f));
Matrix rotate = Matrix.CreateRotationZ(MathHelper.ToRadians(270+26.565f));

sb.Begin(SpriteSortMode.Deferred, null, null, null, null, null, skew * rotate);
// ... draw your sprites here ...
sb.End();

図との唯一の違いは、Y と Y' が反対方向を指していることです。これは、XNASpriteBatchが「クライアント」座標 (左上の (0,0)、Y+ が下) で機能するためです。

于 2013-01-30T02:19:25.997 に答える
0

これを実現するために、マトリックス変換をスプライト バッチと一緒に使用できます。マトリックス変換の詳細については、こちらをご覧ください。

于 2013-01-29T11:58:44.157 に答える