2

パラレルグラムの描画は、Graphics.DrawImageで適切にサポートされています。

Bitmap destImage = new Bitmap(srcImage.Width, srcImage.Height);
using (Graphics gr = new Graphics.FromImage(destImage))
{
    Point[] destPts = new Point[] { new PointF(x1, y1), 
        new PointF(x2, y2), new PointF(x4, y4)};
    gr.DrawImage(srcImage, destPts);

どのように、あなたは4つのポイントを行いますか(明らかに以下はサポートされていませんが、これが望まれていることです):

Bitmap destImage = new Bitmap(srcImage.Width, srcImage.Height);
using (Graphics gr = new Graphics.FromImage(destImage))
{
    Point[] destPts = new Point[] { new PointF(x1, y1), new PointF(x2, y2),
        new PointF(x3, y3), new PointF(x4, y4)};
    gr.DrawImage(srcImage, destPts);
}
4

4 に答える 4

1

通常、これは 3x3 マトリックスで行いますが、Matrix クラスでは 9 ではなく 6 つの値しか指定できません。Direct X でこれを行うことができる場合があります。

于 2008-09-01T20:42:51.457 に答える
0

3D ツールがそれをどのように処理するかを考えるときは、半分の三角形を描画してから、残りの半分の三角形を描画してみてください。したがって、ポイント A、B、C、および D がある場合。(クリッピング プレーンを使用して) A、B、C を描画し、次に B、C、D、またはそのようなものを描画します。

于 2012-08-12T01:06:04.663 に答える
0

CodeProject で次の記事を見つけました: Free Image Transformation By YLS ここに画像の説明を入力

いくつかの作業が必要です

多分あなたはこれを使うことができます:)

于 2015-04-27T13:54:42.767 に答える
-1

私が見つけることができる最も近いのは、この情報です。これは非常に遅れています。

于 2008-11-26T14:55:57.343 に答える