Рисуем правильный многоугольник

  1. public static Path getPolygon(int corners, int radius, int x, int y) {
  2.     float to_x, to_y;
  3.     Path path = new Path();
  4.     int angle = 360 / corners;
  5.     path.moveTo(x + radius , y);
  6.     for (int j = 1; j < corners; j++) {
  7.         to_x = (float)(x + radius * Math.cos(Math.toRadians(j * angle)));
  8.         to_y = (float)(y + radius * Math.sin(Math.toRadians(j * angle)));
  9.         path.lineTo(to_x , to_y);
  10.     }
  11.     return path;
  12. }
corners — количество углов;
radius — радиус описанной окружности;
x, y — координаты центра фигуры.

Пример использования:
  1. Canvas canvas;
  2. int width, height;// размеры экрана
  3. ...
  4. Paint paint = new Paint();
  5. paint.setColor(Color.YELLOW);
  6. canvas.drawPath(getPolygon(6, 100, width / 2, height / 2), paint);
Нарисует шестиугольник посередине экрана.

Реклама

Мы в соцсетях

tw tg yt gt