回答
首先想想最簡單的情況:內圈是微觀小的。只要內圓的半徑不爲零,最小邊數就是3。
多邊形何時開始需要四面?畫出一個刻在圓圈中的等邊三角形。當內圓的半徑達到三角形邊的中心點時,多邊形開始需要四條邊。
如果題n條邊的正多邊形到外圈,可以使用餘弦規則計算從各邊的中點,以該圓的中心的距離:
distance_to_midpoint = cos (360/(N * 2)) * radius_of_outer_circle
(說明:如果使用圓的中心點將圓形的等邊三角形繪製到所討論的邊上,則半徑的角度爲360/N。在邊的中點處將三角形分成兩半,形成直角三角形,其斜邊等於然後使用餘弦規則)
現在distance_to_midpoint
需要大於o r爲r內圓的半徑,所以解決N
:
radius_of_inner_circle = cos(360/(N * 2)) * radius_of_outer_circle
cos(360/(N*2)) = radius_of_inner_circle/radius_of_outer_circle
360/(N*2) = acos(radius_i/radius_o)
N = 180/(acos(radius_i/radius_o))
(我還沒有仔細檢查了這道數學,它真的晚了)。
我也沒有檢查數學,我讓Mathematica去做,它也同意你的觀點。 –
- 畫出的切線內圓,標記A,B - 與外圈的切線的交叉點。
- 從B點向內圓畫一條切線(不同),標記與外圓C的交點。
- 重複步驟(2),直到新切線穿過第一個切線AB。
該算法將確保您覆蓋每個步驟的最大徑向截面,從而最小化生成的多邊形中的邊數。
如果您只想找到邊的數量,就足以找到來自外圓上同一點的內圓的2個切線之間的角度,並計算完整的360度有多少這樣的角度(加1如果有剩餘的話) - 像@cheeken在評論中建議的
謝謝。我認爲這聽起來不錯。 – sanky10987
表示多邊形的半徑,即多邊形外接圓的半徑,由R
表示。內切圓的半徑是
r = R*Cos[180°/n]
解決這對n
,消除雜散解決方案,給出了否定的結果,你有
n = 180°/ArcCos[r/R]
你必須擺弄一點得到一個整數值爲n
,我會把它留給你。
- 1. 在較小的多邊形中細分多邊形的算法
- 2. Dijkstra算法多邊找到最小值
- 3. 計算多邊形的最小圓環
- 4. 處理多邊形的多邊形算法,處理跨邊界的多邊形
- 5. 查找最近的多邊形SVG的
- 6. Python:最小凸多邊形?
- 7. 用於多個多邊形的點多邊形算法
- 8. 從多邊形網格中找到唯一邊的算法
- 9. 通過多邊形尋找最佳路徑的漏斗算法
- 10. 在每個多邊形中查找一組多邊形的最大點R
- 11. 獲取儘可能多的多邊形的最小邊界框
- 12. 計算多邊形的最小面積矩形
- 13. 多邊形歪斜算法
- 14. 多邊形同餘算法
- 15. 多邊形添加算法
- 16. 多邊形填充算法
- 17. 算法,收多邊形
- 18. 找到四邊形內最大的矩形的簡單算法
- 19. 查找多邊形重疊
- 20. 查找多邊形面積的高效算法
- 21. 從給定的四邊形中找出符合矩形的最小四邊形
- 22. 查找圖層中一個多邊形與其他多邊形的最小距離?
- 23. 將三角形多邊形劃分爲更小的多邊形
- 24. 查找凸包的最小邊界框
- 25. 繪製多邊形網格的算法
- 26. 分解複雜多邊形的算法
- 27. 多邊形中的點 - 錯誤算法
- 28. Cuda中的凸多邊形算法?
- 29. 用於多邊形分解的算法
- 30. 將圓加入多邊形的算法
你可以發佈一個鏈接到截圖來展示你的觀點嗎? – nhahtdh
此外,最好詳細說明你已經完成的一些想法/努力 – fayyazkl
像這樣的東西 - http://cs.smith.edu/~orourke/MathOverflow/Annulus.jpg – sanky10987