【发布时间】:2011-10-25 08:32:20
【问题描述】:
我无法确定两条折线是否相交。
嗯,主要目标是将最后一个 X 和 Y 与另一个折线进行比较,并找出它是否正在发生碰撞,也就是与之相交。
由于移动 X 和 Y,数据中存在间隙,所以大多数时候我无法在其他折线中找到 X 和 Y。
我认为我应该比较可视化树或其他东西,而不是数据本身,但我不知道如何做到这一点。
<Canvas x:Name="LayoutRoot" Background="Black" Margin="2">
<Polyline x:Name="player3line" Stroke="GreenYellow" StrokeThickness="4" Points="146,106 141,106 136,105 131,105 126,105 121,106 116,108 112,110 108,113 104,115 100,118 96,120 92,123 88,126 84,129 80,132 77,136 74,140 72,144 69,148 67,152 64,156 " />
<Polyline x:Name="player4line" Stroke="Cyan" StrokeThickness="4" Points="85,113 89,116 93,119 97,121 102,123 107,124" />
</Canvas>
必须有一种简单的方法来检查这两者是否相交?
【问题讨论】:
-
你能展示你用来从他们那里获取 x,y 的代码吗?
-
目前我没有任何代码,我只有添加 X 和 Y 坐标的代码。我的想法是每次我想将 X 和 Y 坐标添加到集合中时检查相交。问题是我缺少一些 X 和 Y 坐标,例如这里:“85,113 89,116”,我在这个集合中找不到 86,114 相交。
-
您的 cmets 有点混乱...您怎么会漏掉数字?你把它们放进去。它们必须存放在某个地方。
-
我缺少数字,因为我画了一条特定长度的线。如果我为每个像素画一条线,移动会非常缓慢。
标签: c# wpf silverlight polyline intersect