Android, как нарисовать треугольник на холсте через путь - PullRequest
1 голос
/ 11 августа 2011

Я могу нарисовать треугольник для события касания в Action_down, как показано ниже,

path.moveTo(motionEvent.getX(), motionEvent.getY());
path.lineTo(motionEvent.getX()-40, motionEvent.getY()+60);
path.lineTo(motionEvent.getX()+40, motionEvent.getY()+60);
path.lineTo(motionEvent.getX(), motionEvent.getY());

это означает, что размер треугольника является фиксированным.

Но я хочу, чтобы в Action_Move размер треугольника увеличивался или уменьшался при перемещении по холсту. Как я могу это сделать? дайте мне путь. Спасибо

1 Ответ

1 голос
/ 11 августа 2011

Примените простое аффинное преобразование или просто гомотетию к вашему треугольнику.

Полагаю, вы хотите увеличить / уменьшить масштабированиеДопустим, ваш метод масштабирования вычисляет коэффициент.

Затем нарисуйте треугольник, используя этот коэффициент.Например:

path.moveTo(motionEvent.getX(), motionEvent.getY());
path.lineTo(motionEvent.getX()-40*factor, motionEvent.getY()+60*factor);
path.lineTo(motionEvent.getX()+40*factor, motionEvent.getY()+60*factor);
path.lineTo(motionEvent.getX(), motionEvent.getY());

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

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