Comment dessiner un triangle rempli sur toile android
J'ai la classe Mavue qui étend la classe View. Mavue doit dessiner le triangle plein. J'ai dessiné un triangle mais je n'arrive pas rempli. C'est mon onDraw() méthode:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(android.graphics.Color.BLACK);
canvas.drawPaint(paint);
paint.setStrokeWidth(4);
paint.setColor(android.graphics.Color.RED);
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setAntiAlias(true);
Point a = new Point(0, 0);
Point b = new Point(0, 100);
Point c = new Point(87, 50);
Path path = new Path();
path.setFillType(FillType.EVEN_ODD);
path.moveTo(a.x, a.y);
path.lineTo(b.x, b.y);
path.moveTo(b.x, b.y);
path.lineTo(c.x, c.y);
path.moveTo(c.x, c.y);
path.lineTo(a.x, a.y);
path.close();
canvas.drawPath(path, paint);
}
C'est ce que je reçois comme un résultat:
source d'informationauteur Egis
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la réponse
ces liens sont très utiles.
Je tiens à souligner que vous ne devriez jamais initiialize un objet de onDraw() comme elle est appelée plusieurs fois et conduit à des problèmes de performances.
Cette réponse donne un peu de clarté sur les numéros donnés dans la réponse par @Egis viennent. (cela attirera une à l'envers triangle équilatéral, et il est écrit dans kotlin)
Obtenir la fonction de hauteur est Le Théorème De Pythagore et sera toujours de trouver la hauteur d'un triangle équilatéral d'environ 87% de sa longueur du côté
Gist peut être trouvé ici, il contient un code pour l'autre direction