首页 > 解决方案 > 如何通过填充区域将svg路径分成多个路径

问题描述

我有一些 svg 路径,考虑其中一个用黑色填充。

输入:

一个svg路径

此 svg 路径由两个填充区域组成。5 移动

球在右下角,2移动到

和火焰轮廓。3 移动

如何使用 python 将它们分成两个区域?

输出:

在此处输入图像描述

在此处输入图像描述

<p>input:</p>
<svg viewBox="0 0 1000 500">
<path xmlns="http://www.w3.org/2000/svg" d="M 0.0,0.0 L 512.0,0.0 L 512.0,512.0 L 0.0,512.0 L 0.0,0.0 M 227.54,25.87 L 356.53700000000003,203.15 L 136.94700000000003,33.96000000000001 L 259.07,198.92 L 20.78,26.128 L 20.775000000000002,26.128 L 200.835,258.318 L 35.878,129.186 L 205.06799999999998,354.619 L 20.17,219.052 L 230.873,447.27599999999995 C 290.86699999999996,504.08599999999996 385.753,503.09799999999996 444.537,444.31299999999993 C 503.31899999999996,385.5299999999999 504.30699999999996,290.6449999999999 447.49899999999997,230.64899999999994 L 227.54,25.87 M 355.988,248.725 C 383.382,248.725 410.774,259.175 431.674,280.075 C 473.474,321.875 473.474,389.649 431.674,431.44899999999996 C 389.87399999999997,473.2489999999999 322.101,473.24899999999997 280.301,431.44899999999996 C 238.50099999999998,389.64699999999993 238.50099999999998,321.87399999999997 280.301,280.073 C 301.20099999999996,259.173 328.596,248.72299999999998 355.989,248.72299999999998 L 355.988,248.725 M 349.254,269.459 C 332.187,269.516 312.274,276.712 296.678,290.331 C 283.544,301.79900000000004 276.215,315.346 274.461,327.228 C 272.708,339.108 275.899,349.004 284.677,356.338 C 302.232,371.005 339.909,367.523 366.177,344.586 C 379.31100000000004,333.116 386.639,319.571 388.394,307.689 C 390.148,295.809 386.956,285.913 378.17900000000003,278.579 C 371.047,272.619 360.932,269.419 349.25500000000005,269.459 L 349.254,269.459 M 396.826,393.827 C 388.22900000000004,393.85699999999997 377.76300000000003,397.533 369.68600000000004,404.477 C 362.88300000000004,410.325 359.326,417.077 358.514,422.48699999999997 C 357.702,427.897 358.964,431.67199999999997 362.82800000000003,434.85099999999994 C 370.55800000000005,441.20799999999997 390.165,440.05799999999994 403.77000000000004,428.36099999999993 C 410.57200000000006,422.51499999999993 414.13000000000005,415.76399999999995 414.94000000000005,410.35299999999995 C 415.75300000000004,404.941 414.49000000000007,401.16599999999994 410.62700000000007,397.98699999999997 C 407.4870000000001,395.405 402.70900000000006,393.80699999999996 396.82700000000006,393.82699999999994 L 396.826,393.827" fill="black"/>
</svg>

<p>output:</p>
<svg viewBox="0 0 1000 500">
<path xmlns="http://www.w3.org/2000/svg" d="M 0.0,0.0 L 512.0,0.0 L 512.0,512.0 L 0.0,512.0 L 0.0,0.0 M 227.54,25.87 L 356.53700000000003,203.15 L 136.94700000000003,33.96000000000001 L 259.07,198.92 L 20.78,26.128 L 20.775000000000002,26.128 L 200.835,258.318 L 35.878,129.186 L 205.06799999999998,354.619 L 20.17,219.052 L 230.873,447.27599999999995 C 290.86699999999996,504.08599999999996 385.753,503.09799999999996 444.537,444.31299999999993 C 503.31899999999996,385.5299999999999 504.30699999999996,290.6449999999999 447.49899999999997,230.64899999999994 L 227.54,25.87" fill="black"/>
</svg>

<svg viewBox="0 0 1000 500">
<path xmlns="http://www.w3.org/2000/svg" d="M 355.988,248.725 C 383.382,248.725 410.774,259.175 431.674,280.075 C 473.474,321.875 473.474,389.649 431.674,431.44899999999996 C 389.87399999999997,473.2489999999999 322.101,473.24899999999997 280.301,431.44899999999996 C 238.50099999999998,389.64699999999993 238.50099999999998,321.87399999999997 280.301,280.073 C 301.20099999999996,259.173 328.596,248.72299999999998 355.989,248.72299999999998 L 355.988,248.725 M 349.254,269.459 C 332.187,269.516 312.274,276.712 296.678,290.331 C 283.544,301.79900000000004 276.215,315.346 274.461,327.228 C 272.708,339.108 275.899,349.004 284.677,356.338 C 302.232,371.005 339.909,367.523 366.177,344.586 C 379.31100000000004,333.116 386.639,319.571 388.394,307.689 C 390.148,295.809 386.956,285.913 378.17900000000003,278.579 C 371.047,272.619 360.932,269.419 349.25500000000005,269.459 L 349.254,269.459 M 396.826,393.827 C 388.22900000000004,393.85699999999997 377.76300000000003,397.533 369.68600000000004,404.477 C 362.88300000000004,410.325 359.326,417.077 358.514,422.48699999999997 C 357.702,427.897 358.964,431.67199999999997 362.82800000000003,434.85099999999994 C 370.55800000000005,441.20799999999997 390.165,440.05799999999994 403.77000000000004,428.36099999999993 C 410.57200000000006,422.51499999999993 414.13000000000005,415.76399999999995 414.94000000000005,410.35299999999995 C 415.75300000000004,404.941 414.49000000000007,401.16599999999994 410.62700000000007,397.98699999999997 C 407.4870000000001,395.405 402.70900000000006,393.80699999999996 396.82700000000006,393.82699999999994 L 396.826,393.827" fill="black"/>
</svg>

标签: pythonsvggraph

解决方案


推荐阅读