Comment puis-je remplir la partie verte entre deux arcs représentés ci-dessous en utilisant les méthodes de peinture et de toile?
Voici comment je dessine les deux arcs, je pouvais également comprendre comment les connecter avec des lignes mais Je ne sais pas comment je peux remplir la zone intérieure. P>
3 Réponses :
Je sais que cela pourrait être un peu en retard mais je suis venu avec cette approche d'un projet iOS, dessinez d'abord du contour, puis dessinez le remplissage un lien utile: http://www.programtering.com/a/mdo1cznwate.html où Addarc Maths sont très bien expliqués P> P> arc
Voici un moyen simple de dessiner Arc rempli avec la bordure: (le trajet p>
code> et
peinture code> L'allocation est faite pour être effacée non optimale) em> p> p>
Il suffit de poster une autre option à l'aide du tirelire uniquement. Fondamentalement, nous dessinons d'abord l'arc rempli externe, puis nous dessinons l'arc intérieur plus petit à l'aide de porterduff.mode.clear strong> pour effacer et atteindre les questions ci-dessus. Bitmap b = Bitmap.createBitmap(1200, 1200, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(b);
int radius = 40;
float startAngle = 45f; // your start angle
float sweepAngle = 90f; // your sweep angle
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.rgb(37, 181, 215));
paint.setStyle(Paint.Style.FILL);
// draw outer arc
RectF oval = new RectF(0, 0, canvas.getWidth(), canvas.getHeight());
canvas.drawArc(oval, startAngle, sweepAngle, true, paint);
// draw inner arc
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
oval = new RectF((canvas.getWidth() / 2) - radius, (canvas.getHeight() / 2) - radius, (canvas.getWidth() / 2) + radius, (canvas.getHeight() / 2) + radius);
canvas.drawArc(oval, startAngle, sweepAngle, true, paint);
ImageView.setImageBitmap(b);