我试图理解从世界上的三维点(x,y,z)到2D图像上的虚拟表示的公式。
我用这个页面作为一个例子:
http://dynamic.pulselive.com/dynamic/client/espn/tennis/presets/

如何从球的实际(x,y,z)位置得到(a,b)位置?
如果您查看该页面,会发现许多有趣的信息:
我认为我的问题归结为如何使用projection.js中的数据从(x,y,z)位置计算(a,b)位置?请注意,我正在尝试获取公式,而且我对javascript库不太感兴趣,因为我需要使用不同的工具来实现。
编辑#1:
视图数据似乎包括:高度、宽度、y(偏航)、p (pan)、tx、ty、tz (摄像机位置)、r(卷)、ar (??,总是1)、fl (焦距??)、cx、cy (以图像为中心?)。
此页给出了一个公式,但不包括偏航:
2d.htm
procedure 3Dto2D (x, y, z, pan, centre, position)
x = x + position.x
y = y + position.y
z = z + position.z
new.x = x*cos(pan.x) - z*sin(pan.x)
new.z = x*sin(pan.x) + z*cos(pan.x)
new.y = y*cos(pan.y) - new.z*sin(pan.y)
z = new.y*cos(pan.y) - new.z*sin(pan.y)
x = new.x*cos(pan.z) - new.y*sin(pan.z)
y = new.x*sin(pan.z) + new.y*cos(pan.z)
if z > 0 then
screen.x = x / z * zoom + centre.x
screen.y = y / z * zoom + centre.y
end if如果我考虑虚拟现实相机2的网球双线球,我有以下信息:
REAL WORLD POSITION (from html source)
X: -11.8872
Y: -5.4864
Y: 0.0
VR CAMERA 2 INFORMATION (from javascript projection.js)
height: 290
width: 578
y: 2.14571658875068
p: -1.86560642719269
tx: 27.0765197103578
ty: 16.2179742216193
tz: 10.4983372879028
r: 0.0
ar: 1.0
fl: 445.122161865234
cx: 289
cy: 145
2D LOCATION (from live inspection of page in browser inspector)
A: 121.9715646498276
B: 193.3313740587937函数(A,B) = f(X,y,Z,高度,宽度,Y,p,tx,ty,tz,r,ar,fl,cx,cy)是什么?
发布于 2015-07-04 20:35:30
偏航计算如下:
x_new = x * cos (yaw) - y * sin (yaw)
y_new = x * sin (yaw) + y * cos (yaw)http://thundaxsoftware.blogspot.fi/2012/01/projecting-3d-points-to-2d-screen.html?m=1
https://stackoverflow.com/questions/31224039
复制相似问题