2.0-r1beta the new blackbox development will be continue here

This commit is contained in:
alex5402
2025-08-16 03:44:19 +05:30
commit 25f73f8b41
160 changed files with 10395 additions and 0 deletions
@@ -0,0 +1,78 @@
package top.niunaijun.blackboxa.util;
import android.graphics.Point;
import android.graphics.PointF;
public class MathUtil {
public MathUtil() {
}
/**
* Get the distance between two points.
*
* @param A Point A
* @param B Point B
* @return the distance between point A and point B.
*/
public static int getDistance(PointF A, PointF B) {
return (int) Math.sqrt(Math.pow(A.x - B.x, 2) + Math.pow(A.y - B.y, 2));
}
/**
* Get the distance between two points.
*/
public static int getDistance(float x1, float y1, float x2, float y2) {
return (int) Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
}
/**
* Get the coordinates of a point on the line by cut length.
*
* @param A Point A
* @param B Point B
* @param cutLength cut length
* @return the point.
*/
public static Point getPointByCutLength(Point A, Point B, int cutLength) {
float radian = getRadian(A, B);
return new Point(A.x + (int) (cutLength * Math.cos(radian)), A.y + (int) (cutLength * Math.sin(radian)));
}
/**
* Get the radian between current line(determined by point A and B) and horizontal line.
*
* @param A point A
* @param B point B
* @return the radian
*/
public static float getRadian(Point A, Point B) {
float lenA = B.x - A.x;
float lenB = B.y - A.y;
float lenC = (float) Math.sqrt(lenA * lenA + lenB * lenB);
float radian = (float) Math.acos(lenA / lenC);
radian = radian * (B.y < A.y ? -1 : 1);
return radian;
}
/**
* angle to radian
*
* @param angle angle
* @return radian
*/
public static double angle2Radian(double angle) {
return angle / 180 * Math.PI;
}
/**
* radian to angle
*
* @param radian radian
* @return angle
*/
public static double radian2Angle(double radian) {
return radian / Math.PI * 180;
}
}