如何在Canvas
中繪製這樣的2D曲線?在Android畫布中繪製2D曲線?
所有類似曲線具有mathematical formula
或是fractals
,但帆布僅具有用於繪製簡單的形狀像一個三角形或矩形的一些方法。我知道大多數曲線可以劃分成更簡單的形狀,例如繪製一個Heart Curve,但是有沒有更容易的方法用畫布繪製2D曲線?
如何在Canvas
中繪製這樣的2D曲線?在Android畫布中繪製2D曲線?
所有類似曲線具有mathematical formula
或是fractals
,但帆布僅具有用於繪製簡單的形狀像一個三角形或矩形的一些方法。我知道大多數曲線可以劃分成更簡單的形狀,例如繪製一個Heart Curve,但是有沒有更容易的方法用畫布繪製2D曲線?
如果你看看如何繪製2D曲線,一般你要麼被畫點或線,它只是外表光滑。
你的問題有兩個參數形式和一個分形。所有可以用線條和點繪製。參數形式可以直接通過算法在您的問題中完成,也可以轉換爲更通用的形式,如@leenephi提到的貝塞爾曲線
大多數時候用於生成分形的方程/算法都使用線,科赫雪花,或點,Mandelbrot集。如果你真的瞭解如何生成它們,你會發現分形不太適合繪製「曲線」,更多關於過程(遞歸)和結果(自相似性)。
您必須通過簡單的基元(例如短線段)近似曲線。
使用「路徑」對象,您可以在「畫布」中創建一些更精緻的線條和曲線。只是隨機找到了這兩個問題;我希望他們能指出你正確的方向,因爲我個人沒有使用過它們。
更正:我已經使用了很多路徑對象,但不是曲線,就是我的意思。 :)路徑是非常酷的做更復雜的線與非常簡單的畫布.DrawLine(...) – leenephi
它似乎不是一個很好的方式來繪製分形。你同意嗎? – hasanghaforian
你打算如何繪製分形?如果你僅僅是在提取數據點,那麼Morrison的上述建議可能是最好的。你在尋找實時動作或動畫還是隻是一個分形圖像?如果第一個,您可能需要考慮SurfaceView或OpenGL中的畫布。如果是後者,我不明白爲什麼Path不起作用,因爲您可以將多個路徑和曲線指令添加到單個Path對象中。 – leenephi
難道你不能在Canvas上繪製點,即Canvas.drawPoints(...),除非有另一個你沒有提到的要求。 –
@MorrisonChang似乎這不是一個很好的方法來繪製分形。你同意嗎? – hasanghaforian