我正在研究過去幾周涉及一些三角形的應用程序,目前我被卡住了。如下圖所示,我知道中心點(我們稱X1,Y1)爲圓形項目(位置#1處爲綠色圓圈)。該圓圈還有一點(橙色圓圈)偏離了中心位置 - 在另外兩個標記(藍色圓圈)之間。這些標記可以移動。計算橙色點的座標(我們稱之爲X2,Y2),並計算藍色線的角度(稱爲角度)與圓的水平線的關係。根據旋轉角度計算新的點偏移量?
我可以計算出圓的中心和由所述點之間的差值:
DELTAX = X2-X1
移動deltaY = Y2-Y1
我需要將其起始位置(位置1)的綠色圓圈(順時針或逆時針 - 無論哪個較短)移動並移動到位置2.這意味着角度可能是負值或正值。藍線必須垂直,位置2(紅色方塊)中心的橙色圓點。我知道位置2的中心座標(我們稱之爲X3,Y3)。位置#1和位置#2彼此正好是90度。
我想我可以使用一些TRIG身份的公式計算一個點的旋轉,因爲這樣的:
OFFSETX = DELTAX * COS(90角) - 移動deltaY *罪(90角)
offsetY = deltaX * sin(90-角度)+ deltaY * cos(90-角度)
我希望這些偏移量是我需要調整圓到它的新中心,當它移動/旋轉到位置2.
X3 = X3 + offsetX
Y3 = Y3 + OFFSETY
然而,當我嘗試用這個數學,它不是放置圓的橙色標誌在廣場的中心。根據旋轉角度(正向或負向,CW或CCW)或我正確使用角度(從90度減去已知角度),我不知道我的公式和計算是否正確。我如何正確計算最終的點/位置?任何幫助和例子將不勝感激!
非常感謝您的時間!
謝謝。我會試試這個。我想我應該澄清一下,我正在將圈子從位置1移動到位置2,然後在那裏進行旋轉。所以,我需要將該橙色點(X2,Y2)居中在紅色正方形的中心(已知點X3,Y3)。角度根據藍色圓圈計算,有時可能爲負數(介於-1和-180之間)。不知道這是否影響公式? – DataCrypt 2014-09-24 16:21:15
@DataCrypt如果旋轉基點隨着橙色點移動,那麼出於計算目的,移動或旋轉並不重要。如果您將橙色點移動到(X3,Y3),但答案將會錯誤,因爲您可能圍繞它的中心旋轉了圓圈,而不是圍繞橙色點(旋轉的點,它在旋轉後不會改變其座標)。當然,只有當(X3,Y3)不隨圓旋轉時。 – Atomosk 2014-09-25 02:36:09
@DataCrypt任何值都可以用於'sin'和'cos',那些公式甚至是-9000。唯一讓我困惑的是'90-角度',因爲我看到的所有罪與cos實現都是以角度的弧度值而不是度數。但我很確定你知道這一點。 – Atomosk 2014-09-25 02:46:28