最近在写画板程序,要判断一个点在一个闭合的path内或者是一个不规则的图形内,这个可不好解决网上查了一堆有算法云云的,直到看到一个大神的帖子 其实可以相当的简单几句话的是 核心代码:
//------关键部分 判断点是否在 一个闭合的path内--------//
if(event.getAction()==MotionEvent.ACTION_DOWN){
//构造一个区域对象,左闭右开的。
RectF r=new RectF();
//计算控制点的边界
mPath.computeBounds(r, true);
//设置区域路径和剪辑描述的区域
re.setPath(mPath, new Region((int)r.left,(int)r.top,(int)r.right,(int)r.bottom));
//判断触摸点是否在封闭的path内 在返回true 不在返回false
Log.e("","--判断点是否则范围内----"+re.contains((int)event.getX(), (int)event.getY()));
}
主要是用了 mPath.computeBounds(r, true);来计算边界 产生Region来判断
全部示例代码:
package com.example.touchtest;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.gr