Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 浮点数计算不正确的条件逻辑_Java_Android_If Statement_Floating Point_Rectangles - Fatal编程技术网

Java 浮点数计算不正确的条件逻辑

Java 浮点数计算不正确的条件逻辑,java,android,if-statement,floating-point,rectangles,Java,Android,If Statement,Floating Point,Rectangles,我有下面的代码,尽管多次尝试让它正确评估,但我无法让它工作。我有办法单独检查每一项(在这种情况下,它可以工作),但我可以写一个看似简单的数学语句,但它不工作,这一事实令人不安 我已经检查了点的值,它们在矩形内,它将返回false。如果我单独检查每一个,它将正确地评估它们,我得到一个真实的值 提前感谢您的时间 public static boolean checkIfPointInRectangle(RectF rect, float canvasRotateAngle, float objRot

我有下面的代码,尽管多次尝试让它正确评估,但我无法让它工作。我有办法单独检查每一项(在这种情况下,它可以工作),但我可以写一个看似简单的数学语句,但它不工作,这一事实令人不安

我已经检查了点的值,它们在矩形内,它将返回false。如果我单独检查每一个,它将正确地评估它们,我得到一个真实的值

提前感谢您的时间

public static boolean checkIfPointInRectangle(RectF rect, float canvasRotateAngle, float objRotationAngle, int sketchPadHeight, int sketchPadWidth, float pointX, float pointY) {
    float[] points = new float[] { pointX, pointY };

    // Transform the points to the current rotation
    Matrix transform = new Matrix();        
    transform.setRotate(objRotationAngle - canvasRotateAngle, sketchPadWidth / 2, sketchPadHeight / 2);
    transform.mapPoints(points);

    if(((rect.left <= points[0]) && (points[0] < rect.right) && (rect.top <= points[1]) && (points[1] < rect.bottom))){
        return true;
    } else{
        return false;
    }

}
public static boolean checkIfPointInRectangle(RectF rect、float canvasrotationangle、float objRotationAngle、int sketchPadHeight、int sketchPadWidth、float pointX、float pointY){
浮点[]点=新浮点[]{pointX,pointY};
//将点变换为当前旋转
矩阵变换=新矩阵();
setRotate(对象旋转角度-画布旋转角度,sketchPadWidth/2,sketchPadHeight/2);
变换。映射点(点);

if(((rect.left)不确定我是否理解正确。如果点在矩形内,if语句应该解析为true?如果是,则
rect.top
是上界,应该是
pointY?如果说:
if(rect.contains(points[0],points[1]){…