2011-10-17 53 views
0

我集中縮放框上的圖形具有以下點:作圖用比例因子

var x1 = (this.width - (this.image.width * this.scale))/2 + this.origin.x; 
var y1 = (this.height - (this.image.height * this.scale))/2 + this.origin.y; 
var x2 = (this.image.width * this.scale); 
var y2 = (this.image.height * this.scale); 
context.drawImage(this.image, x1, y1, x2, y2); 

現在我需要能夠擴展在該圖上的一個點。該點在當前級別具有原點x/y,點x/y和比例因子(this.scale)。如何將這個比例因子轉換成給定比例的框中的一個點?

+0

相當有用,如果你喜歡像我這樣的矩陣代數:http://en.wikipedia.org/wiki/Transformation_matrix#Scaling – Blender

+0

@Blender:你有什麼機會可以把它翻譯成英文嗎? ;) –

+0

你能更清楚一點你的問題嗎?我真的不知道你在問什麼。也許一張照片可能有幫助? – Blender

回答

0

我認爲你的問題是 - 一個點已經給出座標x,y,你需要拿出新的x和y座標a, b,以便它在縮放框內的相同位置,就像它在整個圖中。

點距離原點水平遠離x單位,你需要它是來自新原點的x/scale個單位。

所以,a = x/scale + x1(因爲新的原點座標爲x1, y1

相似,關鍵是y單位垂直距離原點,和你需要的是來自新的原點y/scale單位。

b = y/scale + y1

我想我可能有誤解,其中新的原點是(盒子的左上角,但如果我有那麼只需更換x1y1新原點的座標)