Как нарисовать изменяемый размер пятиугольника с помощью событий касания пользователя? - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь создать многоугольник в форме пятиугольника, размер которого можно изменить, перетащив одну из его вершин. Я попробовал код из этого вопроса о SO, но позже понял, что код специально написан для прямоугольной формы. Я попытался изменить код в методе onDraw (), но позже реорганизовал его так, как это было раньше, после того, как понял, что он бесполезен.

Любая помощь?

1 Ответ

0 голосов
/ 16 мая 2019

Итак, вот код, который я только что написал, чтобы нарисовать пятиугольник на холсте. У вас есть вершины, которые вы можете редактировать в onTouchEvent.

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        int width = getWidth();
        int heigth = getHeight();

        // not required, but just to move it to the middle
        float centerX = width / 2.f;
        float centerY = heigth / 2.f;

        // vertices
        float p1x = 100.f + centerX;
        float p1y = 0.f + centerY;
        float p2x = 0.f + centerX;
        float p2y = -80.f + centerY;
        float p3x = -100.f + centerX;
        float p3y = 0.f + centerY;
        float p4x = -80.f + centerX;
        float p4y = 80f + centerY;
        float p5x = 80.f + centerX;
        float p5y = 80.f + centerY;

        Path path = new Path();
        path.moveTo(p1x, p1y);
        path.lineTo(p2x, p2y);
        path.lineTo(p3x, p3y);
        path.lineTo(p4x, p4y);
        path.lineTo(p5x, p5y);
        path.lineTo(p1x, p1y);

        Paint paint = new Paint();
        paint.setColor(Color.BLUE);
        canvas.drawPath(path, paint);
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...