gpt4 book ai didi

android - 分解轮廓路径

转载 作者:行者123 更新时间:2023-12-02 15:51:17 25 4
gpt4 key购买 nike

我正在尝试将 Android 中的复杂路径分解为其子轮廓。目前我想出了这段代码:

public static ArrayList<Path> splitToContours(Path path) {
ArrayList<Path> list = new ArrayList<Path>();
PathMeasure pm = new PathMeasure(path, true);
float segment = 0;
Path tempPath;
do {
tempPath = new Path();
tempPath.rewind();
pm.getSegment(segment, segment + pm.getLength(), tempPath, true);
segment += pm.getLength();
tempPath.close();
list.add(tempPath);
} while (pm.nextContour());
return list;
}

但是在我看来,轮廓中的最后一个点也会开始下一个轮廓。谁能帮我吗?也许有一种更简单、更优雅的方法来做到这一点?过去两周我一直在用头撞墙,现在我有点迷失了。

最佳答案

不确定你的确切问题是什么,但我使用类似的东西来创建绘画风格的动画。您似乎走在正确的道路上,也许不要关闭路径?

 List<Path> segmentPath(Path path, float segmentLength, float scale,
float dx, float dy) {
PathMeasure pm = new PathMeasure(path, false);
float length = pm.getLength();

float start = 0;
float delta = segmentLength;

List<Path> segments = new ArrayList<Path>();
while (start <= length) {
float end = start + delta;
if (end > length) {
end = length;
}

Path segment = new Path();
pm.getSegment(start, end, segment, true);

segments.add(segment);
start += delta;
}

return segments;
}

关于android - 分解轮廓路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15785177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com