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

标签 android android-canvas wordsearch android-paint

我正在开发一个单词搜索游戏。表格布局包含 TextView 。 TextView 显示字符。当用户在 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)

关于android - 在 Android 中仅绘制水平线、垂直线和对角线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44846598/

相关文章:

java - Java如何获取文件夹中的所有文件

android - 如何更改 ImageView 的半径模糊

android - 解码后的位图字节大小?

android - 使用 Canvas

android - 尝试从 SQLite 数据库读取时崩溃

android - 结合 Canvas 和布局 (Android)

java - android canvas 九补丁可绘制失败

flutter - 如何在 flutter 中制作填字游戏类型的拼图?

java - 我的单词搜索游戏不断崩溃,但在构建它时未检测到错误

Objective-C 乱码求解器