@@ -11,23 +11,40 @@ import kotlin.math.sqrt
1111 * 3 4 5
1212 * 6 7 8
1313 *
14- * @param x 表示该cell的x坐标(相对坐标)
15- * @param y 表示该cell的y坐标(相对坐标)
14+ * @param x 表示该cell的x坐标(点坐标)
15+ * @param y 表示该cell的y坐标(点坐标)
16+ * x,y 点坐标编号如下:
17+ * (0,0) (1,0) (2,0)
18+ * (0,1) (1,1) (2,1)
19+ * (0,2) (1,2) (2,2)
20+ *
21+ * @param centerX 表示该cell的圆心x坐标(相对坐标)
22+ * @param centerY 表示该cell的圆心y坐标(相对坐标)
23+ * centerX, centerY 圆心坐标如下:
24+ * (radius, radius) (4radius, radius) (7radius, radius)
25+ * (radius, 4radius) (4radius, 4radius) (7radius, 4radius)
26+ * (radius, 7radius) (4radius, 7radius) (7radius, 7radius)
27+ *
1628 * @param radius 表示该cell的半径
1729 * @param isHit 表示该cell是否被设置的标记
1830 */
19- data class CellBean (val id : Int , val x : Float , val y : Float , val radius : Float , var isHit : Boolean = false ) {
31+ data class CellBean (val id : Int ,
32+ val x : Int ,
33+ val y : Int ,
34+ val centerX : Float ,
35+ val centerY : Float ,
36+ val radius : Float ,
37+ var isHit : Boolean = false ) {
2038 /* *
2139 * 是否触碰到该view
2240 *
2341 * @param x
2442 * @param y
2543 * @return
2644 */
27- fun of (x : Float , y : Float , enableSkip : Boolean ): Boolean {
28- val dx = this .x - x
29- val dy = this .y - y
30- val r = if (enableSkip) this .radius else this .radius * 1.5f
31- return sqrt((dx * dx + dy * dy).toDouble()) <= r.toDouble()
45+ fun of (x : Float , y : Float ): Boolean {
46+ val dx = this .centerX - x
47+ val dy = this .centerY - y
48+ return sqrt((dx * dx + dy * dy)).toDouble() <= this .radius.toDouble()
3249 }
3350}
0 commit comments