Справочник API: PathMeasure
PathMeasure используется для вычисления длины пути, а также для нахождения позиции и касательной в любой заданной точке пути.
Обзор
Объект PathMeasure инициализируется с помощью Path. Он проходит по контурам пути. Если путь содержит несколько контуров, вы можете перейти к следующему с помощью nextContour().
Конструкторы
new PathMeasure(): Создает пустойPathMeasure.new PathMeasure(path): Инициализирует с указанным путем.new PathMeasure(path, forceClosed): ЕслиforceClosedравен true, путь считается замкнутым, даже если это не так.new PathMeasure(path, forceClosed, resScale):resScaleуправляет точностью измерения (по умолчанию 1.0).
Методы
Управление состоянием
setPath(path, forceClosed): Сбрасывает измерение с новым путем.nextContour(): Переходит к следующему контуру в пути. Возвращаетtrue, если он существует.isClosed(): Возвращаетtrue, если текущий контур замкнут.
Измерения
getLength(): Возвращает общую длину текущего контура.getPosition(distance): ВозвращаетPointна указанном расстоянии вдоль пути.getTangent(distance): Возвращает касательную (как векторPoint) на указанном расстоянии.getRSXform(distance): ВозвращаетRSXformна указанном расстоянии.getMatrix(distance, getPosition, getTangent): ВозвращаетMatrix33, представляющую позицию и/или касательную на расстоянии.
Извлечение
getSegment(startD, endD, dst, startWithMoveTo): Возвращает сегмент пути междуstartDиendDв предоставленныйPathBuilder.
Пример
java
Path path = Path.makeCircle(100, 100, 50);
PathMeasure measure = new PathMeasure(path);
float length = measure.getLength();
Point pos = measure.getPosition(length / 2); // Получить точку на половине пути
Point tan = measure.getTangent(length / 2); // Получить направление в этой точке