4
我目前正在研究一個應用程序,該應用程序使用視頻投影儀創建類似於真實激光的效果。在Youtube here上可以看到我試圖存檔的一個非常好的例子。使用cairo在Python中繪製大量圓圈
基本上,應用程序需要繪製各種顏色的簡單移動形狀。我有一個非常複雜的設置,使用pycairo允許原語通過一組修改器來改變位置,縮放和旋轉。這允許很大的靈活性。
不幸的是pycairo在繪製虛線圓圈時似乎很慢。我試圖畫出30個這樣的圓圈:
# setup, transforms...
# Example color-scheme:
self._colors = [(0.0, 1.0, 0.0)]
# drawing dashes one after another
for count, color in enumerate(self._colors):
cr.set_dash(dash_len, self._dash_len * count)
cr.set_source_rgb(color[0], color[1], color[2])
cr.arc(0, 0, self.radius(), 0, 2 * math.pi)
cr.stroke()
整個事情看起來像this。使用Core2Duo時,無法在800x600上支持25fps。
有沒有更快的繪製圓圈的方法?質量不是真正的問題。
感謝您的幫助!
你有沒有考慮繪製n-gons而不是圈子?應該更快,而且如果N足夠高,你就不會看到太多的差異。 – Junuxx
你也可以嘗試關閉antialiasing等 – Qnan
@Junuxx我試了20gons,他們的速度大致相同。你的想法看起來很有希望 @Qnan我的設置代碼中已經有一個'cr.set_tolerance(0.5)',還有更多嗎? – Delphinator