Animation 计算透视投影动画中球体的二维速度
我创建了两个由在透视投影3D空间中移动的球体组成的动画,这意味着球体的大小和速度随距离而变化:当球体靠近观察者(相机)时,球体的大小和速度会增加,而当球体远离观察者时,球体的大小和速度会减小。这两个动画都在计算机2D屏幕上播放 在“随机运动”动画中,球体在不同方向随机移动(GIF 1)。在我的代码中,我用两个角度θ和φ计算了它们的球坐标(sphere.position.xyz)(参见下面用于位置及其导数的公式) 在光流动画中,是摄影机沿z轴移动(摄影机_z-=.1),球体不移动(GIF 2) 在神经科学实验的背景下,我需要匹配两个动画之间的速度感知,因此我需要首先计算两个动画中的2D速度(通过2D,我指的是屏幕坐标,而不是世界坐标)。每个动画各自的速度公式是什么?光流计算中每个球体的速度是否等于相机的速度 如何在随机动画中生成球体坐标:Animation 计算透视投影动画中球体的二维速度,animation,3d,velocity,perspectivecamera,Animation,3d,Velocity,Perspectivecamera,我创建了两个由在透视投影3D空间中移动的球体组成的动画,这意味着球体的大小和速度随距离而变化:当球体靠近观察者(相机)时,球体的大小和速度会增加,而当球体远离观察者时,球体的大小和速度会减小。这两个动画都在计算机2D屏幕上播放 在“随机运动”动画中,球体在不同方向随机移动(GIF 1)。在我的代码中,我用两个角度θ和φ计算了它们的球坐标(sphere.position.xyz)(参见下面用于位置及其导数的公式) 在光流动画中,是摄影机沿z轴移动(摄影机_z-=.1),球体不移动(GIF 2) 在
for sphere in spheres:
sphere.position.xy = np.random.uniform(-25, 25, size=2)
z = np.random.uniform(near_z, far_z)
sphere.position.z = z
sphere.position.x *= z/-50
sphere.position.y *= z/-50
sphere.theta_deg = np.random.rand(1) * 360
sphere.phi_deg = np.random.rand(1) * 360
theta_rad = sphere.theta_deg * np.pi / 180
phi_rad = sphere.phi_deg* np.pi / 180
sphere.dx = speed * np.sin(-phi_rad - theta_rad) / frameRate
sphere.dy = -speed * np.cos(phi_rad + theta_rad) / frameRate
sphere.dz = -speed * np.cos(theta_rad) / frameRate