2013-05-18 44 views
5

編程方式畫一個完美的圓是不是所有的困難。它基於一些非常簡單的數學,畢竟。輸入兩個參數(中心和半徑)並輸出圓。繪製一個不完美的圓圈

但是,如果您沒有工具來幫助您,繪製一個自由形式的圓圈(如在手中握筆)非常困難!如果我想模擬一個試圖繪製圓的人,是否有任何算法可以使用三個參數(中心,半徑和「錯誤因子」),並使用第三個值的大小來創建隨機缺陷在這個圈子裏,雖然仍然在製造一些看起來像一個試圖畫出圓圈的人的東西?

+2

以下是一種方法 - http://mathematica.stackexchange.com/questions/11350/xkcd-style-graphs - 您可以根據自己的目的調整或採用。如果你足夠努力,我想你會發現其他語言的實現。 –

+0

http://codepen.io/dcdev/pen/upjDy – davidcondrey

回答

1

將圓畫成一系列「向內」和「向外」的圓弧,重新計算每個段所需的正確中心,以將圓弧的端點保持在實際圓周的一定距離內。

1

自由手劃出的圓圈是隨機但仍看起來連續。向半徑添加噪音可能會導致看起來不切實際的跳躍。

一個稍微的改變可以在一定程度解決這個問題。使用馬爾可夫矩陣,將噪音分成N水平,並且只有三個對角線條目。這將導致隨機性,但它只能轉換到prev/next層次。讓它看起來連續。