android 계산점이 부채꼴 영역에 있는지 여부
1348 단어 andorid
먼저 구배 BAC의 도수(호도)를 계산합니다.
public double calculatorDegree(float x1, float y1, float x2, float y2, float x3, float y3) {
double radian = 0;
double ab = getDistance(x1, y1, x2, y2);
double ac = getDistance(x1, y1, x3, y3);
double bc = getDistance(x2, y2, x3, y3);
double value = (ab * ab + ac * ac - (bc * bc)) / (2 * ab * ac);
radian = Math.acos(value);
return radian;
}
public double getDistance(float x1, float y1, float x2, float y2) {
double distance = 0;
distance = Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
return distance;
}
2. 호도에 따라 도수를 계산하고 AC 거리를 계산한다.
float x = event.getX();
float y = event.getY();
double radian = calculatorDegree(width / 2, height / 2, width / 2 + radius, height / 2, x, y);
double degree = (180 / Math.PI * radian);
double distance = getDistance(width / 2, height / 2, x, y);
3, 도수와 거리에 따라 계산한다.
도수를 사용하기 전에 보각을 사용했는지 아닌지를 판단한다.
부채형 호선의 시작점 좌표를 계산합니다.
(float) (center_X + r * Math.cos(startAngle * Math.PI/180)),(float) (center_Y + r * Math.sin(startAngle * Math.PI/180))