如何平滑線條(UIBeizerPath)或一組點?現在它把它畫成鋸齒狀。我閱讀了樣條插值,任何人都可以指示我在可可或C中實現這個,或者給我一個備用線條平滑算法。Cocoa Touch中的線條平滑
2
A
回答
1
石英(UIKit用於繪製,並且在很多地方可以直接用於繪圖)具有內置的抗鋸齒支持。大多數情況下它已經開啓了,所以除非你打開anti-aliasing,否則你不應該有別名(鋸齒狀)繪圖。所以,停止這樣做。 :-)
默認情況下沒有打開它的上下文大多是那些不合適的上下文,例如PDF上下文和CGLayer上下文。 The documentation意味着這些上下文甚至不支持抗鋸齒,這會產生一定的意義。
CGContext提供了一些用於開啓和關閉消除鋸齒功能的函數,但除非需要別名,否則不應該調用它們。您可以嘗試使用這些功能將其打開;如果這有效,那麼你應該首先調查爲什麼它永遠關閉。
您是從CALayer內繪製路徑嗎?這可能是爲什麼它關閉了; there's an Info.plist key you have to turn on to get anti-aliasing turned on by default in such contexts。
2
我不認爲你需要用曲線做Bezier路徑。您可以繼續繪製直線段,但可以使用插值添加更多數據點。這一點尤其重要,因爲我假設你只想在一個座標軸上平滑,所以最終不會像圖中的循環那樣出現奇怪的現象。
因此,您想要在現有點之間添加更多點到源數據,並使用比線性插值更復雜的插值算法。有很多可供選擇的。二次?基於正弦波?很多,這取決於你使用的是什麼樣的數據。
1
我發現,如果您在畫面邊緣畫一條線或一個圖像,它會出現鋸齒狀。移動一些線(或增加你的框架),它應該看起來很好,很脆。再次,不知道這是否是你的問題,但它已經咬了我幾次。
例如,如果您要在CALayer中顯示圖像,請確保圖像和框架之間存在空間,如果您只做了90度角度的任何操作。
相關問題
- 1. Tableau中的線條平滑
- 2. openGL的平滑線條
- 3. d3js線條圖的平滑線
- 4. 如何使d3線條圖中的線條更平滑?
- 5. initWithCoder中NSCoder的用途:? (Cocoa和Cocoa Touch)
- 6. 使用GDI調用的平滑線條
- 7. Cocoa Touch中的動畫?
- 8. Cocoa-touch和UIButtonContent
- 9. NSNumberFormatter for Cocoa-touch?
- 10. Sencha Touch:如何在一條水平線上設置滑塊和容器?
- 11. 如何平滑手繪線條?
- 12. WebGL:平滑淡出線條畫布
- 13. VTK如何平滑一條線
- 14. 平滑線條視圖改變顏色
- 15. C++中的曲線平滑
- 16. Cocoa-Touch UIButton isSelected clarification
- 17. Cocoa Touch - 比較Ints
- 18. P樣條平滑
- 19. matplotlib彩條平滑
- 20. Cocoa Touch上的AES加密
- 21. Python平滑曲線
- 22. 開源Cocoa/Cocoa-Touch POP3/SMTP庫?
- 23. 使用CanvasRenderer在three.js中繪製線條使線條比WebGLRenderer更平滑
- 24. 平滑的線條寬度在畫布行中更改爲
- 25. 使用MATLAB中的cscvn平滑樣條曲線?
- 26. gnuplot的:平滑曲線
- 27. 縮放後的平滑線
- 28. Cocoa Touch中的.ppt(MS PowerPoint)文件
- 29. iPhone中的AdWhirl實現Cocoa touch
- 30. Cocoa Touch/iPhone中的XML解析
沒有那種鋸齒。反鋸齒正在工作,但我需要從某種算法中進行總線平滑。 – 2010-04-17 04:56:24
一張圖片價值10^3字... – Meltemi 2010-04-17 14:42:08