Spaces:
Sleeping
Sleeping
| import torch as tr | |
| def compute_polar_azimuthal_angles(origin, vector): | |
| """ | |
| Compute the polar and azimuthal angle. | |
| :param origin:oring vector portion ov atom 1 | |
| :param vector: arrow vector position ov atom 1 | |
| :return: polar and azimuthal angle theta and phi. | |
| """ | |
| # Compute differences in coordinates | |
| dx = vector[0] - origin[0] | |
| dy = vector[1] - origin[1] | |
| dz = vector[2] - origin[2] | |
| # Compute polar angle | |
| r = tr.sqrt(dx ** 2 + dy ** 2 + dz ** 2) | |
| theta = tr.arccos((vector[2] - origin[2]) / r) | |
| # Compute azimuthal angle | |
| phi = tr.arctan2(dy, dx) | |
| return theta, phi | |