私はHTML5キャンバスを使用して一連のツリーとそれに対応するシャドウを作成しています。私はそれぞれの影が光源の位置に基づいていることを望んでいます。私はそれぞれの木を描くことができ、それは影であり、一度にすべての影を歪ませますが、各影を個別に歪ませようとすると、私は逃げることができます。私のコードは次のとおりです。キャンバスを使用して個別に画像をスキューさせる
var ctx = cvs[0].getContext('2d');
ctx.save();
//skew the canvas
ctx.transform(1,0,0.3,-1,0,0);
ctx.drawImage(tree1,74,-117,20,40);
ctx.drawImage(tree1,126,-125,20,40);
var imgd = ctx.getImageData(0, 0, 500, 300);
var pix = imgd.data;
//convert the drawn trees to shadows
for (var i = 0, n = pix.length; i < n; i += 4) {
pix[i ] = 0; // red
pix[i+1] = 0; // green
pix[i+2] = 0; // blue
// alpha
}
ctx.putImageData(imgd, 0, 0);
//remove the skewing
ctx.restore();
//draw full color trees
ctx.drawImage(tree1,50,40,20,40);
ctx.drawImage(tree1,100,50,20,40);
drawImageを使用して画像を描くときに、画像を歪める方法はありますか?前もって感謝します!
ジャストアイデア、その可能な場合はわかりません。変換するキャンバスの特定の領域を指定する方法はありますか?私は、 "スクラッチ"領域でスキューを行い、後で正しい位置に各シャドーを移動することができました。 – Jeremy