рисовать повернутый путь в определенной точке

Я работаю над настраиваемым представлением ( расширяет представление ) и работаю в методе onDraw .

Я проложил путь стрелка:

    ARROW_PATH = new Path();
    ARROW_PATH.setLastPoint(20, 37);
    ARROW_PATH.lineTo(14, 25);
    ARROW_PATH.lineTo(18, 26);
    ARROW_PATH.lineTo(17, 4);
    ARROW_PATH.lineTo(23, 4);
    ARROW_PATH.lineTo(22, 26);
    ARROW_PATH.lineTo(26, 25);
    ARROW_PATH.close();

В разных сценариях ее нужно повернуть, чтобы отобразить определенный угол, и мне нужно нарисовать ее в определенной координате на виде. Координата также меняется в зависимости от сценария.

Я пробовал экспериментируя с Canvas.rotate , похоже, что аспект пути искажается, когда значения px и py не равны (стрелка становится уже и выше, когда py> px .

Я также пробовал Canvas.rotate (angle, 0, 0); , а затем ARROW_PATH.moveTo (x, y) ; но похоже, что координаты повернуты на произвольный угол, что очень затрудняет вычисление требуемых координат.

В идеале я бы хотел повернуть путь, а не холст, но я не думаю, что это операция поддерживается API.

Может ли кто-нибудь предложить лучший подход к этой проблеме?

спасибо, стр.

11
задан pstanton 20 July 2011 в 14:04
поделиться