예 : 6000px x 3000px (360도 넓이 및 180도 펼쳐짐)의 평평한 (등변 각 파노라마) 이미지가 제공됩니다. 예를 들어 x = -10, y = -10을 구 좌표계 (팬/틸트 또는 수직/수평 오프셋)로 변환하려면 어떻게해야합니까? 여기서 이미지의 중심은 수평/수직 오프셋 0을 의미합니까?x/y 좌표를 구형으로 변환
이것을 계산할 수 있습니까? 아니면 반경, 거리 또는 z 좌표와 같은 다른 변수가 필요합니까?
편집 : 내가 지금까지 무엇을 가지고 :
def self.translate_xy_to_spherical(x, y)
h = (x/(6000/360)) - 180
v = ((y/(3000/180)) - 90)/- 1
[h, v]
end
def self.translate_spherical_to_xy(h, v)
x = ((h + 180) * (6000/360))
y = ((v * -1) + 90) * (3000/ 180)
[x, y]
end
내가 첫 번째 방법에서 0,0에 넣어, 내가 올바른 -180,90를 얻을. 하지만 3000,0을 설정하면 0,90을 기대하지만 790을 얻습니다. 다른 수식 (구형으로 xy)도 동일합니다. 0,0을 입력하면 3000,1500을 기대하지만 2880x1440px를 얻습니다. 직선으로 계산하기 때문에 작은 오프셋이 있습니다.
업데이트 : 대답
나는도이보다 더 큰 360도 될 수 계정에 걸릴 아래에서 답을 업데이트했습니다.
IMAGE_WIDTH = 6000
IMAGE_HEIGHT = 3000
def self.translate_xy_to_spherical(x, y)
h = (x/(IMAGE_WIDTH/360.0)) - 180
v = ((y/(IMAGE_HEIGHT/180.0)) - 90)/-1
[h, v]
end
def self.translate_spherical_to_xy(h, v)
x = (((h % 360) + 180) * (IMAGE_WIDTH/360.0))
y = (((v % 180) * -1) + 90) * (IMAGE_HEIGHT/ 180.0)
[x, y]
end
평면 이미지를 구형에 매핑 하시겠습니까? –
예, 동등한 크기의 평면 이미지입니다. https://en.wikipedia.org/wiki/Equirectangular_projection – Jareish
wikipedia의 수식을 사용할 수없는 이유는 무엇입니까? –