2010-10-03 77 views
1

對如何做到這一點有一個腦凍結。我有一個足球場區域的圖像,用戶點擊該區域可以指示發生什麼事情。將像素轉換爲可點擊圖像的相對cm值?

我想在我的數據庫中存儲真實世界單位的座標,以便以後可以更改圖像。但是,我無法弄清楚這樣做的公式(忽略了足球場長度可變的事實)。

所以說我的圖像是400像素乘300像素代表一個真實世界的領域12000釐米x 9000釐米,點300px,100px以釐米爲單位是什麼?那麼我如何將cm值轉換回像素爲800x600像素的圖像?以碼/英寸來做也是可以接受的。

請給我看看工作而不是單一的價值。謝謝!

回答

2

就像任何其他單位轉換:300 * 12000/400, 100 * 9000/300是用戶點擊足球場的點。

更一般地,假設兩個刻度具有相同的零(即0 source == 0 target),並且您知道刻度等於x source == y target,那麼valueInTarget = valueInSource * (y/x)的點。

更一般地說,假設您知道兩個刻度相等的兩點,即x1 source == y1 targetx2 source == y2 target,然後valueInTarget == (valueInSource - x1) * (y2 - y1)/(x2 - x1) + y1 == (valueInSource - x2) * (y1 - y2)/(x1 - x2) + y2

2

使用比率。 400px代表12000cm,因此您的寬度比例是每像素30釐米。將這個比例應用到300像素給我們9000釐米。

在第二個示例中,您的寬度比例是每像素15釐米(12000/800)。所以第二幅圖像的9000cm就是600px。

同樣的高度。