사용 방법
원래 벡터 u를 기준 벡터 v 방향의 성분 p와 수직인 나머지 r로 분해해요. x·y만 필요하면 2차원, z도 필요하면 3차원을 고르세요. 두 벡터는 같은 좌표계와 호환 단위를 사용해야 해요. u는 투영할 벡터, v는 목표 방향이므로 순서가 중요해요. v를 미리 단위벡터로 만들 필요 없이 기하 문제, 방향 운동과 성분 확인에 활용할 수 있어요.
예시값을 원하는 값으로 바꾸고, 비교 연산이나 차원을 선택할 수 있다면 선택한 뒤 계산을 누르세요. Enter를 눌러도 같은 양식이 제출돼요. 이 동작을 해야 결과가 확정돼요. 숫자나 선택 항목을 바꾸면 이전 결과가 사라지고 결과 복사가 비활성화되어 이전 답과 혼동하지 않아요. 지우기는 선택한 모드를 유지하면서 숫자 입력란을 비워요. 계산 후 결과 복사를 누르면 입력값과 계산 결과를 일반 텍스트로 복사해요. 클립보드 접근이 차단되면 화면의 텍스트를 선택하세요. 연한 값은 실행 가능한 예시예요. 숫자 입력란을 처음 선택하면 모든 예시 숫자가 한 번 지워지고 이후 입력값은 유지돼요. 입력 미리보기는 계산을 눌러 확정하세요.
계산 원리와 결과 읽기
공식은 p = (u · v)/(v · v) v, r = u − p예요. 동등하게 v를 단위 방향 d로 정규화하고 부호 있는 스칼라 s = u · d를 구해 p = sd로 계산할 수 있어요. 구현은 이 단위 방향 방식을 써요. 스칼라는 부호가 있으며 항상 음이 아닌 투영 길이는 아니에요. 투영 길이는 |s|예요. 정확한 산술에서는 r · v = 0이므로 나머지 성분이 기준 방향에 수직이에요.
정사영 벡터, 스칼라 성분, 잔차 벡터, 잔차 내적과 상대 직교 오차를 보여 줘요. 벡터가 크면 절대 내적만으로는 오해할 수 있어 작은 상대 오차를 보는 것이 유용해요. 그림은 같은 원점의 u·v, 기준선 위 p, p 끝에서 u 끝으로 이어지는 r을 그려 p + r = u를 머리·꼬리 연결로 보여 줘요. 색뿐 아니라 실선·파선과 이름표로 구분해요.
예시
예시 1: 2차원에서 u = (3, 4), v = (1, 0)이면 p = (3, 0), s = 3, r = (0, 4), r · v = 0이에요. 두 축의 축척이 같아 수평 기준과 수직 잔차가 직각으로 보여요.
예시 2: 3차원에서 u = (2, −1, 3), v = (0, 0, −2)이면 정사영은 (0, 0, 3), s = −3, 잔차는 (2, −1, 0)이에요. 음의 스칼라는 p가 v의 반대 방향이라는 뜻이며 정사영 길이는 3이에요. 내적 확인값은 0이에요.
제한 사항과 문제 해결
실수 성분 2개나 3개만 지원해요. v는 영벡터일 수 없고 u는 가능해요. 소수점은 쉼표 대신 점을 쓰세요. 값은 0 또는 절댓값 1e−12~1e12예요. 보통 소수 둘째 자리까지, 작은 0 아닌 결과는 유효 자릿수를 더 유지해요. 계산에는 반올림 전 값을 사용해요. 3차원 그림은 화면 좌표 (x − 0.6z, y − 0.4z)로 평행 투영하므로 각도·길이가 왜곡되고 다른 점이 겹칠 수 있어요. 수직 여부는 화면 각도가 아닌 내적으로 확인하세요. 복사에는 이미지가 아닌 값이 들어가요.
입력은 유효숫자 15자리까지 사용하세요.
자주 묻는 질문
v에 양수를 곱하면 p가 바뀌나요?
아니요. 기준 벡터 길이만 바뀌고 기준 직선과 정사영은 같아요.
v의 방향을 뒤집으면 어떻게 되나요?
스칼라 부호는 반대가 되지만 p와 잔차는 같아요.
정사영이 0일 수 있나요?
네. u와 v가 수직이면 p는 영벡터이고 원래 벡터 전체가 잔차가 돼요.
z 좌표가 사라진 이유는 무엇인가요?
2차원 모드는 z를 숨기고 무시해요. 3차원으로 돌아가면 칸이 복원되며 결과 확정을 위해 다시 계산해야 해요.