如何用条件填充WPF中2条折线之间的区域

时间:2012-07-26 07:09:06

标签: wpf intersection polyline

我正在开发一个图表应用程序,其中有2条折线,比如折线A(在下图中显示为红色线)和折线B(在下图中显示为蓝色线)。

example

图表中可以有两个条件:

  • 当红线从上方与蓝线相交,然后保持在蓝线下方时,我想用某种颜色填充该区域。

  • 当红线与下方的蓝线相交,然后保持在蓝线上方时,我想用其他颜色填充该区域。

1 个答案:

答案 0 :(得分:2)

如果没有这样做,我可以想象,通过填写Path并以适当的方式设置Clip,你可以在没有太多数学的情况下做你想做的事。

假设您用绿色填充红线下方的整个区域。因此,您需要设置一个填充Path,其Data几何是一个闭合多边形,由红线的所有点加上视口的两个下角点组成。在Path上,您可以将Clip属性设置为另一个封闭的多边形几何体,该几何体将包含蓝线中的所有点以及视口的两个上部点。对于红色填充,您将再次执行相同的操作,但使用交换的折线。

直接的方法当然是找到交点,确定交点的方向,从上下线点加上适当的交点创建闭合多边形,并根据交点方向填充这些多边形。

祝你好运!