【发布时间】:2018-02-23 23:26:02
【问题描述】:
我有一个渲染多边形形状的画布代码。我可以拖动一个图形并将其移动到另一个地方。我有move 事件函数,可以改变最近的多边形和可拖动多边形的颜色。问题是我不知道如何让它们只有在我用可拖动的图形触摸图形的一角时才改变颜色。我做了我所做的,只考虑了一个图形的width 和height,所以当我将一个图形拖到其他图形附近时,它们中的一些甚至在我不触摸它们时都会改变它们的颜色。所以我应该以某种方式考虑他们的角落......这对我来说太复杂了。
代码比较多,所以我做了codepen,在那里你可以看到我在说什么。
PS:只允许使用 javascript 的 API。
【问题讨论】:
-
我在您的示例中注意到的第一件事是它们都是凸形。我相信这大大简化了您需要使用的算法。如果您还需要处理凹形,那将会改变。
-
我不需要处理凹形。
-
谷歌“多边形碰撞/重叠”
-
^^^ 除非您希望有人为您编写代码,否则这里有很多资源。包括很多可能需要很少调整的代码。在这里试试:stackoverflow.com/questions/753140/…
-
@M.科瓦尔,我不是那个意思。我只是想为这个“如何考虑多边形的角”问题找到一种算法或解决方案。
标签: javascript canvas html5-canvas