在 Android 中仅绘制水平线、垂直线和对角线

Drawing only horizontal, vertical and diagonal lines in Android

我正在开发一个单词搜索游戏。 Table 布局包含文本视图。文本视图显示字符。当用户在 8 个方向中的任何一个找到单词时:TopToBottom、BottomToTop、LeftToRight、RightToLeft、TopToBottomRight、BottomToTopLeft、ToptoBottomLeft、BottomToTopRight,我想在相应方向的单词上显示 canvas 行。

我可以从起点到终点绘制水平线、垂直线和对角线。起点是用户开始滑动的地方。终点是他停止滑动的地方。

Check the first three screenshots here

但我的问题是我还可以在错误的坐标之间绘制其他线,这些线不是水平线、垂直线或对角线。请参阅接下来的三个屏幕截图。

我只想画水平线、垂直线和对角线。当终点坐标错误时,我需要将终点移动到附近的任何一个方向(水平,垂直或对角线)。

你可以在画之前找到直线的斜率。假设大小相同、间距均匀的字母,并且触摸点位于每个字母内的相同位置...

超过 0 的东西 - 垂直线
±1 - 对角线
0 - 水平

公式=(p2.y - p1.y)/(p2.x - p1.x)