0
我在Android中有一個畫布,我在其中繪製多個直徑爲1至10像素的圓圈。Android帆布:僅在透明背景上繪製一個圓圈
我只想在透明背景上打印這個圓,如果在圓的地方任何地方有任何其他顏色,它應該被取消,我想知道已經在那個地方的顏色。當它只是重疊一點點。
問題是,我發現的方法有不好的表現。
我在屏幕上畫了超過10000個圓圈,工作正常,但它們重疊,我必須處理這個問題。
任何人都可以幫助我? :-)
我在Android中有一個畫布,我在其中繪製多個直徑爲1至10像素的圓圈。Android帆布:僅在透明背景上繪製一個圓圈
我只想在透明背景上打印這個圓,如果在圓的地方任何地方有任何其他顏色,它應該被取消,我想知道已經在那個地方的顏色。當它只是重疊一點點。
問題是,我發現的方法有不好的表現。
我在屏幕上畫了超過10000個圓圈,工作正常,但它們重疊,我必須處理這個問題。
任何人都可以幫助我? :-)
你問題不是很清楚。
如果您想知道在繪製視圖的背景之前存在哪種顏色,我看不到任何解決方案。如果有人能找到答案,我會非常感興趣。
如果您想知道「如果您以前畫了一個與您想繪製的當前圈子重疊的圓圈」,那麼最好的解決方案是以編程方式維護您之前繪製的所有圓圈的列表,他們的中心位置和直徑,並檢查它是否會與新的圈子重疊。這個計算非常簡單,應該足夠快,即使是1000圈。
另請注意,有一些方法可以優化這樣的計算。例如,如果事情太慢,可以考慮使用不同的距離度量而不是經典的歐式度量。例如,可以使用中心之間使用絕對值的x和y的差值來代替它們差值平方和的平方根。