私はプロジェクトにキャンバスを使用しています。私はいくつかの要素を持っています。私はちょうどyの値を歪曲しているだけで、画像の新しい幅が歪んだ後であることを知りたいので(別のキャンバス要素と揃えることができます)私はキャンバスでゆがんだときに新しい幅を計算する
ctx.save();
//skew the context
ctx.transform(1,0,1.3,0,0,0);
//draw two images with different heights/widths
ctx.drawImage(image,0,0,42,60);
ctx.drawImage(image,0,0,32,25);
何を意味するかを確認するために以下のコードをチェックアウトの目標は、私が0,0でそれを描画する前に、いくつかの翻訳を行うことができますので、42 60で画像が今60画像によってXだったことを知っていることであろう。個々の画像を個別に測定するのは簡単ですが、プロジェクト全体で、調整する必要のあるスキュー値と高さ/幅が異なります。この式は、すぐに(私はそれが傾斜式ではない。このようなまっすぐな値だと思う)ばらばらになるのに画像が広くなるにつれ
var skewModifier = imageWidth*(8/6)+(19/3);
var skewAmount = 1.3; //this is dynamic in my app
var width = (skewModifier*skewAmount)+imageWidth;
:現在、私はこのコードを(25と42幅のイメージにちゃんと動作します)を使用します。どのようなキャンバスが斜めになるかについてのアイデアはありますか?
です。幅と高さを指定すると、画像の新しい幅をXに歪ませたときに伝えることができます(水平スキューでも高さにも影響があるようです)。 – Jeremy
申し訳ありませんが、私は近づいています。私は今、画像の斜めの長さを取得し、スキューでそれを掛けると、私はかなり正しい値に近いことを理解しました。それでもまだかなりはありません。何か案は? – Jeremy
本当に 'ctx.transform(1,0,1.3,0,0,0);'ではなく、 'ctx.transform(1,0,1.3,1,0,0);'ではありませんか? –