想想看,就像你想縮放一個三角形以適應矩形內部一樣。考慮與基部寬度1.
我們知道,DY/DX =米
一個三角形,所以用相同的斜率三角形的高度爲m。
現在把你的矩形,並制定出適合在矩形內的三角形的最大規模。對於正瑪:
min(rectWidth, rectHeight/m)
這是我們必須使用,以適應矩形內的三角形的規模。現在,它很容易與pytagoras定理得到交點
scale = min(rectWidth, abs(m/rectHeight)) // m could be negative so we take abs
length = sqrt(scale*scale + scale*m*scale*m)
注意,有一個線這個長度可能有多個可能的解決方案的長度,是我們肯定積極M(三角形朝上),它將適合在矩形的左下部,和用於負米(三角形指向下方),它會適合在右上角。
因此,可以說您的矩形是由4個值了minX,MINY,maxX的中,美星
如果m是正數,線相交了minX MINY,並退出在
[minX + scale, minY + (m * scale)]
矩形如果m是消極的線相交於maxX的美星,並退出在
[maX - scale, maxY + (m * scale)] (noting that m is negative)
所有你需要處理的矩形現在爲0的斜率,這是微不足道的。
這似乎類似於我有一個問題:這個概念是相同的,但我有度的角度,這樣,如果該矩形是在45平方°的最大長度等於三角形的對角線(斜邊)。我怎麼能改變這個公式來使它在我的情況下也能工作? – 2015-01-19 16:19:56