Skip to content
This is the development version of the documentation. It may change before the next release. See 0.9.x for the latest release.

bessel

src

bessel generates a Bessel beam. The algorithm is based on the paper by Hasegawa et al. (Hasegawa et al., 2017).

bessel(&geometry, apex, direction, theta, wavelength, &mut phases);
Parameter Type Description
geometry &Geometry Device layout
apex Point3<f32> Coordinates of the apex of the virtual cone that generates the beam [mm]
direction UnitVector3<f32> Direction of the beam (unit vector)
theta Angle Half-apex angle of the cone (e.g. 18.0 * deg)
wavelength Length Wavelength
dst &mut [Vec<Phase>] Output buffer
use autd3_rs::geometry::{Autd3, Geometry, Vector3, offset};
use autd3_rs::units::{deg, m, mm, s};
use autd3_rs_pattern::{bessel, wavelength};
let geometry = Geometry::new(vec![Autd3::default()]);
let mut phases = geometry.phase_buffer();
bessel(
&geometry,
geometry.center() + offset(0.0 * mm, 0.0 * mm, 150.0 * mm),
Vector3::z_axis(),
18.0 * deg,
wavelength(340.0 * m / s),
&mut phases,
);