将一行从 C 翻译成 Python

Translate one line from C to Python

我目前正在学习光线投射编程教程,该教程是用 C 编写的,我正在用 Python 重写它,但我无法理解以下行,因此无法翻译它在 python 中:

float aTan = -1/tan(ra);
ry = (((int)py>>6)<<6-0.0001;
rx = (py-ry)*aTan+px;

其中 ry 和 rx 是第一条水平线和射线之间交点的 y 坐标和 x 坐标。 此外,ra 是光线的角度。 aTan 和 rx 的行只是数学所以我理解它们但是像我这样的 python 学生不熟悉 ry 的写作,你能告诉我吗?

“>>”运算符是右移,因此整数除以 2 的幂。

数值

ry = (((int)py>>6)<<6-0.0001;

等同于

ry = (py // 64) * 64 - 0.0001

(自 2^6 == 64