我有以下 PathPoints 和 PathTypes 数组(格式:X、Y、Type):
-177.477900, 11021.670000, 1
-614.447200, 11091.820000, 3
-1039.798000, 10842.280000, 3
-1191.761000, 10426.620000, 3
-1591.569000, 10493.590000, 3
-1969.963000, 10223.770000, 3
-2036.929000, 9823.960000, 3
-2055.820000, 9711.180000, 3
-2048.098000, 9595.546000, 3
-2014.380000, 9486.278000, 3
这是此 GraphicsPath 的物理外观。2 条弧线非常容易区分:
我知道这个 GraphicsPath.PathData 数组是由 2 个 AddArc 命令创建的。单步调试调试器中的代码,我看到前 4 个 PathData 值是由第一个 AddArc 命令添加的,其余 6 个点是由第二个 AddArc 命令添加的。
通过检查原始路径点/路径类型数组(以前不知道它是 2 个 AddArc 命令,所以我知道我有 2 个起点和终点),我想确定每个弧的起点和终点。
我已经尝试了几种贝塞尔计算来“重新创建”数组中的点,但是无法确定如何确定单独的起点和终点。似乎 GDI+ 正在组合弧之间的起点/终点(它们是相同的点并且弧是连接的),而我正在失去一个弧正在结束而另一个弧正在开始的事实。
有任何想法吗?