I는 두 식 (거리 및 광고 화학식 기울기)안드로이드/자바 두 방정식 시스템을 해결
D = SQRT있다 ((X2 - X1)^2 + (Y2 - Y1)^2)
을 m = (Y2 - Y1)/(X2 - X1)
알려진 : d, m, X1,
Y1 알 : X2,
문제 Y2는 선형 적이되는 거리 식이다 ..
Java에서 이것을 코딩하는 방법이 있습니까 (Andro를 사용하여 ID를 호환 라이브러리) 해결할 수 있습니까? 나는 간단한 추측을 시도했지만 너무 느리다.
감사
편집 : 그것은 좋은하지 않은 0 < 1 때 코드 삼각형
Point p1 = new Point();
Point p2 = new Point();
projection.toPixels(gp1, p1);
projection.toPixels(gp2, p2);
Point p3 = new Point();
double slope = (p2.y - p1.y)/(p2.x - p1.x);
double x = 0;
if (p2.y - p1.y >= 0 && p2.x - p1.x >= 0) {
x = - Math.sqrt(600/(1 + slope*slope)) + p2.x;
} else if (p2.y - p1.y >= 0 && p2.x - p1.x < 0) {
x = Math.sqrt(600/(1 + slope*slope)) + p2.x;
} else if (p2.y - p1.y < 0 && p2.x - p1.x >= 0) {
x = - Math.sqrt(600/(1 + slope*slope)) + p2.x;
} else if (p2.y - p1.y < 0 && p2.x - p1.x < 0) {
x = Math.sqrt(600/(1 + slope*slope)) + p2.x;
}
double y = -slope*p2.x + slope*x + p2.y;
p3.set((int) x, (int) y);
double inverseSlope = 0;
if (slope == 0) {
inverseSlope = Double.MAX_VALUE;
} else {
inverseSlope = -1/slope;
}
x = -Math.sqrt(300/(1 + inverseSlope*inverseSlope)) + p3.x;
y = -Math.sqrt(300/(1 + inverseSlope*inverseSlope))*inverseSlope + p3.y;
Point p4 = new Point();
p4.set((int) x, (int) y);
x = Math.sqrt(300/(1 + inverseSlope*inverseSlope)) + p3.x;
y = Math.sqrt(300/(1 + inverseSlope*inverseSlope))*inverseSlope + p3.y;
Point p5 = new Point();
p5.set((int)x, (int) y);
Path path = new Path();
path.moveTo(p2.x, p2.y);
path.lineTo(p4.x, p4.y);
path.moveTo(p4.x, p4.y);
path.lineTo(p5.x, p5.y);
path.moveTo(p5.x, p5.y);
path.lineTo(p2.x, p2.y);
path.moveTo(p2.x, p2.y);
canvas.drawPath(path, mPaint);
것이이 경사에 의해 발생되고 나타납니다 그래서 항상 정수입니다 .. .
일치하지 않는 당신의 괄호, 당신은 의미합니까 : SQRT ((X2 - X1)^2 + (Y2 - Y1)^2) * m = (Y2-Y1)/(X2 -x1) –
답변을 수락 한 후 질문을 변경하지 말고 다음에 새로운 질문을 시작하십시오 ... – kritzikratzi
괜찮 았으므로 실제로 원하시는 것을 수행하는 코드가 있습니다 : http : //studio.sketchpad. cc/WjZ7UqIq4F 우주에서 오리엔테이션을 다룰 때 일반적으로 슬로프를 사용하는 것은 좋지 않습니다. 대부분의 경우 명시 적으로 모든 코너 케이스 (무한 및 제로)를 처리해야하기 때문입니다. 벡터, 즉 점, 각도 및 거리의 관점에서 생각해보십시오. 종이에 방정식을 단순화하고 결과 코드를 단순화합니다.만약 당신이 내 코드를 보았다면, pythagorean의 정리와 sinus의 근본적인 정의 외의 것을 사용하지 않는다는 것을 알 것입니다. 마지막 생각 : 변수의 이름을 지정하십시오! – kritzikratzi