0

XAMLでは、ProjectionPlaneを使用して、要素を3次元軸上でピボットします。たとえば、長方形の右端を自分の方に傾けたい場合は、次のようにします。

<!-- zero rotation -->
<Rectangle Fill="White" Height="200" Width="200">
    <Rectangle.Projection>
        <PlaneProjection RotationY="0" />
    </Rectangle.Projection>
</Rectangle>

<!-- 45 deg rotation -->
<Rectangle Fill="White" Height="200" Width="200">
    <Rectangle.Projection>
        <PlaneProjection RotationY="45" />
    </Rectangle.Projection>
</Rectangle>

<!-- 85 deg rotation -->
<Rectangle Fill="White" Height="200" Width="200">
    <Rectangle.Projection>
        <PlaneProjection RotationY="85" />
    </Rectangle.Projection>
</Rectangle>

結果の長方形は次のようになります。

ここに画像の説明を入力してください

ここまでは順調ですね。これが私の問題です。角度が90度に近づくにつれて、長方形はますます歪んでいきます。ProjectionPlaneをY軸に沿って90度まで回転させながら、スキューを減らす(または視野を変更する)ことができるプロパティまたはテクニックはありますか?

つまり、後ろの角から角からの角度が小さくなり、その結果、長方形にコンテンツが含まれていると、より識別しやすくなります。

質問をできるだけ明確にするための前後を次に示します。左側は私が得たものです。右側は私が欲しいものです。要点を言うと少し誇張されています。これが理にかなっていることを願っています。

ここに画像の説明を入力してください

4

1 に答える 1

1

残念ながら、PlaneProjectionでは射影行列を変更できません。投影を制御するには、Matrix3DProjectionを使用する必要があります。ドキュメントで提供されているサンプルコードを使用するか、 Matrix3DExライブラリをWinRTに移植することを検討できます。

もう1つ試すことができるのは、オブジェクトをZ軸に沿って押し戻し、サイズを維持するようにスケールアップすることです。オブジェクトはカメラから遠く離れているため、フリップ時の歪みが少なくなります。

ところで、Jaime Rodriguezによると、PlaneProjectionの視野は57度に設定されており、ほとんどのディスプレイで少し幅が広くなっています。

于 2013-01-25T01:41:04.763 に答える