I want to draw an equilateral triangle on the Canvas, I get a quad, how to fix it?

Point a = new Point(0, 100); Point b = new Point(50, 0); Point c = new Point(100, 100); Paint triangle = new Paint(); triangle.setColor(Color.RED); Path path = new Path(); path.setFillType(Path.FillType.EVEN_ODD); path.lineTo(bx, by); path.lineTo(cx, cy); path.lineTo(ax, ay); path.close(); canvas.drawPath(path, triangle); 
  • yet it is not an equilateral triangle. Base length - 100, length of the legs - 111.8 - Vladyslav Matviienko
  • @metalurgus isosceles approaching equilateral :) - Lucky_girl

1 answer 1

 Point a = new Point(0, 100); Point b = new Point(50, 0); Point c = new Point(100, 100); Paint triangle = new Paint(); triangle.setColor(Color.RED); Path path = new Path(); path.setFillType(Path.FillType.EVEN_ODD); path.moveTo(ax, ay); //добавьте эту строку path.lineTo(bx, by); path.lineTo(cx, cy); path.lineTo(ax, ay); path.close(); canvas.drawPath(path, triangle); 

This is because you do not set the starting point (which defaults to 0.0)

  • Thank you, it works! - Lucky_girl