android - 如何确定用户触摸了这个矩形中的哪个三角形?

标签 android algorithm math

我制作了一个看起来像方向键的 Android 自定义 View (下图)。给定触摸坐标 (x,y)、矩形宽度 (w) 和矩形高度 (h),忽略白色对角线和圆角,有人可以帮助我如何确定用户触摸的是哪个三角形?

附加信息:(0,0) 是左上角

D-Pad Image

最佳答案

将原点移到中心:x减去w/2y减去h/2 .如果它不是正方形(比如 w 大于 h),则对较大的维度进行归一化:x *= h; x/= w; 那么,这四个部分可以确定如下:

x < 0, |y| < |x| = left
x > 0, |y| < |x| = right
y < 0, |x| < |y| = up
y > 0, |x| < |y| = down

(任何其他条件,例如 x=y=0 或 |x|=|y|,表示您在对角线上)。

关于android - 如何确定用户触摸了这个矩形中的哪个三角形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538210/

相关文章:

c++ - 我的 KD 树有什么问题? (K=2)

c++ - 根据角度和距离在空间中找到一个二维点

javascript - 我在这个 javascript 贷款计算器上遗漏了什么?

java - 为什么我的 SQLLiteDatabase 没有执行更新?

android - SQLite:getCount() 或 DatabaseUtils?

algorithm - 设施位置 - 最小化为具有距离限制的客户提供服务的设施的算法

algorithm - 二次函数的渐近紧界,再访

math - 使用固定大小位宽寄存器的偏移二进制算法是否有任何常规规则?

android - 使用 gson 和 null 值反序列化

java - 任务 ':app:transformDexArchiveWithExternalLibsDexMergerForDebug' 执行失败