문제가있어서 해결책이 정확한지 알려주세요.주어진 거리에서 선을 따라 3D 점을 찾으십시오.
지점 A (x1, y1, z1)와 원점 O (0,0,0)에 알려진 지점이 있고 지점 B (x2, y2, z2)의 좌표를 찾고 싶습니다. 그 선은 OA에 위치하고 거리 OB는 OA보다 1.2 배 크다.
그래서, 내 아이디어는 점 O 및 A. OA의 방향이 (-X1, -Y1, -z1)에 의해 형성된 라인의 방정식을 구하는이므로 선의 방정식은 다음
x = -x1 * t;
y = -y1 * t;
z = -z1 * t;
거리 OA는 sqrt ((x1-0)^2 + (y1-0)^2 + (z1-0)^2)입니다. KNOWN
거리 OB는 sqrt ((x2-0)^2 + (y2-0)^2 + (z2-0)^2)입니다. UNKNOWN
거리 OB의 라인 방정식에 대해 결정된 x, y, z 점을 대체 할 수 있으며 결과는 거리 OA보다 1.2 배 커야합니다.
따라서, sqrt ((-x1 * t-0)^2 + (-y1 * t-0)^2 + (-z1 * t-0)^2) = 1.2 * dist (OA).
여기에서 t를 발견하고 2 차 방정식을 풀면 선의 등식에서 t를 대체하여 점의 좌표를 얻습니다.
이 정보가 맞습니까?
감사합니다.
편집 : 이 내 코드입니다 :
rangeRatio = 1.114;
norm = sqrt((P2(1) - P1(1))^2 + (P2(2) - P1(2))^2 + (P2(3) - P1(3))^2);
P3(1) = P1(1) + ((P2(1,1) - P1(1)) /norm) * rangeRatio;
P3(2) = P1(2) + ((P2(1,2) - P1(2)) /norm) * rangeRatio;
P3(3) = P1(3) + ((P2(1,3) - P1(3)) /norm) * rangeRatio;
나는 또한 1 = 규준 시도, 그리고 난 항상 여전히 동일 선상에 있지 약간 다른 결과를 얻을 수 있지만.
고맙습니다.
와우, 문제가 너무 복잡해졌습니다. – ja72