나는 지금 특정 카메라를 염두에두고 있지 않습니다. 프로그래밍 방식 / 수학적으로 어떻게 수행되는지 궁금합니다.
나는 3D 공간, 직사각형을 가지고 있으며, 한쪽 구석에 카메라가 위로 향하게되어 있습니다.
해당 사각형에 현재 위치의 (x, y, z) 좌표를 전송하는 움직이는 객체가 있습니다.
그 좌표를 가져 와서 카메라가 해당 위치를 가리 키도록 지시하는 지침으로 변환하고 싶습니다.
이 번역은 일반적으로 어떻게 이루어 집니까?
나는 지금 특정 카메라를 염두에두고 있지 않습니다. 프로그래밍 방식 / 수학적으로 어떻게 수행되는지 궁금합니다.
나는 3D 공간, 직사각형을 가지고 있으며, 한쪽 구석에 카메라가 위로 향하게되어 있습니다.
해당 사각형에 현재 위치의 (x, y, z) 좌표를 전송하는 움직이는 객체가 있습니다.
그 좌표를 가져 와서 카메라가 해당 위치를 가리 키도록 지시하는 지침으로 변환하고 싶습니다.
이 번역은 일반적으로 어떻게 이루어 집니까?
답변:
내 카메라는 DLink 5020-L이며 API를 통해 제공 될 수있는 이동 / 기울기 명령이 있습니다 . 또한 사전 정의 된 위치를 설정하고 API를 통해 트리거 할 수도 있습니다.
Position 1
Position 1
카메라 배치 방법에 따라 이전 결과를 무시할 수 있습니다
(시간이 있으면 회로도를 추가하겠습니다)
이미 훌륭한 답변입니다. 고려해야 할 몇 가지 다른 사항을 추가하고 싶습니다. hardlib와 Goufalite가 이미 언급했듯이이를 수행하는 방법은 삼각법입니다. 카메라와 IoT 객체를 2 차원으로 묘사했습니다.
보시다시피, 카메라의 시야는 물체가 멀어 질 때 근거리에 있지 않으면 물체보다 더 커집니다.
이제 카메라가 항상 물체의 중앙에 오도록 할 수 있습니다 . 이 경우 hardlib가 참조한 계산을 간단히 수행 할 수 있습니다.
ϴ = arctan(y/x)
... 이것은 컨벤션에 따라 x 축에서 시계 반대 방향 각도입니다. 또한 레벨에서 떨어진 각도가 필요합니다.
α = arctan(z / ((y^2+x^2)^1/2))
분명히 세 축 모두에서 원점에있는 카메라 위치를 기준으로 계산해야합니다.
다른 한편으로, 카메라가 필요 이상으로 움직이지 않도록하는 것, 즉 물체가 프레임 밖으로 이동하려고 할 때만 카메라를 움직이게하는 것을 선호 할 수 있습니다. 이 경우 객체가 프레임 가장자리에 얼마나 가까이 있는지에 따라 카메라가 각도를 변경할 가능성이 높은 "압력"변수가 필요할 것입니다.
해당 경로로 이동하면 두 시야 모두에서 카메라 시야각을 알아야 물체가 카메라 시야각과 비교되는 위치를 결정할 수 있습니다.