我正在开发一个wordsearch游戏。表格布局包含文本视图。 Textviews显示字符。当用户在8个方向中的任何一个方向找到一个单词时:TopToBottom,BottomToTop,LeftToRight,RightToLeft,TopToBottomRight,BottomToTopLeft,ToptoBottomLeft,BottomToTopRight,我想在相应方向上的单词上显示画布线。
我可以绘制从起点到终点的水平,垂直和对角线。起点是用户开始滑动的位置。结束点是他停止滑动的地方。
Check the first three screenshots here
但我的问题是我还可以在错误的坐标之间绘制其他线,这些坐标不是水平线,垂直线或对角线。请参阅接下来的三个屏幕截图。
我想只绘制水平,垂直和对角线。当终点位于错误的坐标时,我需要将终点移动到与附近方向(水平,垂直或对角线)中的任何一个方向一致。
答案 0 :(得分:1)
您可以在绘制之前找到线的斜率。假设大小相同,间隔均匀的字母,并且触摸点位于每个字母内的相同位置......
超过0的东西 - 垂直线
±1 - 对角线
0 - 水平
公式= (p2.y - p1.y)/(p2.x - p1.x)