2013-03-24 2 views
0

У меня есть холст в Android, где я рисую много кругов с диаметром от 1 до 10 пикселей.Холст для Android: рисование круга только на прозрачном фоне

Я хочу только напечатать этот круг на прозрачном фоне, если есть какой-либо другой цвет в любом месте места, где будет нарисован круг, его следует отменить, и я хочу знать цвет, который уже находится на этом месте. Также, когда его просто накладывается немного.

Проблема в том, что методы, которые я нашел, имеют плохую производительность.

Я рисую более 10000 кругов на экране, это прекрасно работает, но они перекрываются, и я должен справиться с этой проблемой.

Может ли кто-нибудь мне помочь? :-)

ответ

0

Вопрос не очень ясен.

Если вы хотите узнать, какой цвет присутствует «до того, как нарисован фоновой рисунок», я не вижу никакого решения. Мне было бы очень интересно, если кто-то найдет ответ на этот вопрос.

Если вы хотите знать, «если вы ранее нарисовали круг, который будет перекрываться с текущим кругом, который вы хотите нарисовать», то лучшим решением является поддержка, самостоятельно, программно, список всех кругов, которые вы рисовали раньше, расположения центров и их диаметров и проверить, будет ли он перекрываться с новым кругом. Это вычисление довольно простое и должно быть достаточно быстрым, даже для 1 000 кругов.

Также обратите внимание, что есть некоторые способы оптимизации такого вычисления. Например, вы можете подумать, если что-то слишком медленно, использовать другую дистанционную меру вместо классической евклидовой меры. Например, разность x и y, используя абсолютные значения, между центрами может быть использована вместо квадратного корня из суммы квадрата их разностей.

Смежные вопросы