簡體   English   中英

在縮放和旋轉的矩形中查找點和大小

[英]find point and size in scaled and rotated rectangle

我有一個矩形1:綠色,具有以下屬性:

x: 102, y: 121, width: 900, height: 900

我里面有一個子矩形,紅色(與綠色1相關的屬性):

x: 327, y: 415, width: 271, height: 183
  • 如果我將綠色縮小0.75,然后將其旋轉30度,則對它的子級也是如此。

如何計算縮放和旋轉后的綠色內 的紅色兒童(灰色) 哨子大小和位置使其與非旋轉/縮放后的紅色相同?

http://codepen.io/christianpugliese/pen/RWWdvN?editors=001

在此處輸入圖片說明

讓我們對此進行更多的數學計算。 我們有一個帶座標的綠色廣場

g = {(102,121),(1002,121),(1002,1021),(102,1021)}

和帶坐標的紅色矩形

r={{327,415),(498,415),(498,598),(327,598)}.

G的中心是(552,571)。

令T為從中心到原點的平移。 S是圍繞原點縮放0.75,R是旋轉30º。 以矩陣形式

T = (-552)
    (-571)

S = (0.75, 0   )
    (0   , 0.75)

R = (cos 30, -sin 30)
    (sin 30,  cos 30)

到點p =(x,y)的完全變換是

T' R S T' p

= T' R S (x-552, y-571)

= T' R (0.75*(x-552), 0.75*(y-571))

= T' (cos 30 * (0.75*(x-552) -sin 30 * 0.75*(y-571))
     (sin 30 * (0.75*(x-552) +cos 30 * 0.75*(y-571))

= ( cos 30 * (0.75*(x-552) -sin 30 * 0.75*(y-571) + 552 )
  (sin 30 * (0.75*(x-552) +cos 30 * 0.75*(y-571) + 571  )

如果讓矩形具有邊界xl,xh,yl,yh,則角為(xl,yl),...(xh,yh)。 我們將變形應用於每個角,給定點A =(ax,ay),B,C,D。我們需要確保每個點都在矩形內,所以xl <= ah << xh。

這給出了一組要求解的方程。 哪個應該可行。

暫無
暫無

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

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