2
我試圖將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;
}
但是在我看來,在輪廓的最後一點也開始下一個輪廓。 任何人都可以幫我嗎?也許有一個更簡單,更優雅的方式來做到這一點?在過去的兩週裏,我一直把頭靠在牆上,我有點迷失在這裏。
感謝這個例子,它幫助我找到了解決方案。我發現在pm.getSegment()中,前兩個參數是相對於當前輪廓而不是絕對偏移。所以你不需要'segment'變量,只需調用'pm.getSegment(0,pm.getLength(),tempPath,true)'。 – pinch