簡體   English   中英

從旋轉的元素中找到元素的實際高度和寬度

[英]Find the actual height and width of element from rotated element

我有公式來獲取旋轉的矩形的高度和寬度,如下所示

radians = (Math.PI / 180) * degree;
x = Math.abs(Math.sin(radians)) * h + Math.abs(Math.cos(radians)) * w;
y = w * Math.abs(Math.sin(radians))  +  h * Math.abs(Math.cos(radians));

因此x,y值是旋轉后的新高度和寬度。

示例矩形旋轉到15度,高度74和寬度110是旋轉后的值,我想從這些轉換后的值中找出矩形的原點高度(50)和寬度(100),我需要找出通過上面的公式,所以我可以用不同的值代替。 旋轉矩形的樣本圖像

讓代表

s = Math.abs(Math.sin(radians))

c=cosine相似。 然后你有方程系統

x = s * h + c * w
y = c * h + s * w

第一個乘以c,第二個乘以s

c * x = c * s * h + c * c * w
s * y = s * c * h + s * s * w

減去等式得到w

w * (c * c - s * s) = c * x - s * y
w = (c * x - s * y) / (c * c - s * s)

對h做類似的過程(或在第一個方程式中用w代替h表示h)

請注意,45/135/225/315度會產生簡並的情況 :分母為零,不可能獲得真實的結果-這是基本限制,我們可以將無數個角度為45的矩形刻成正方形(此處x = y)

w = ((c * rot_w) - (s * rot_h)) / (c * c - s * s);
h = ((c * rot_h) - (s * rot_w)) / (c * c - s * s);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM