これは開発版のドキュメントである. 内容は次のリリースまでに変更される可能性がある. 最新のリリース版は 0.9.x を参照.
bessel
srcbessel はベッセルビームを生成する.
アルゴリズムは長谷川らの論文 (Hasegawa et al., 2017) に基づく.
bessel(&geometry, apex, direction, theta, wavelength, &mut phases);bessel(geometry, apex, direction, theta, wavelength, phases)Pattern.Bessel(geometry, apex, direction, theta, wavelength, phases);| 引数 | 型 | 説明 |
|---|---|---|
geometry |
&Geometry |
デバイス配置 |
apex |
Point3<f32> |
ビームを生成する仮想円錐の頂点座標 [mm] |
direction |
UnitVector3<f32> |
ビームの方向 (単位ベクトル) |
theta |
Angle |
円錐の半頂角 (18.0 * deg など) |
wavelength |
Length |
波長 |
dst |
&mut [Vec<Phase>] |
出力バッファ |
Example
Section titled “Example”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,);import numpy as npfrom autd3.geometry import Autd3, Geometryfrom autd3.units import deg, m, sfrom autd3_pattern import bessel, wavelength
geometry = Geometry([Autd3([0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0])])
phases = geometry.phase_buffer()
bessel( geometry, geometry.center() + np.array([0.0, 0.0, 150.0]), np.array([0.0, 0.0, 1.0]), 18.0 * deg, wavelength(340 * m / s), phases,)using System.Numerics;using AUTD3;using static AUTD3.Units;
var geometry = new Geometry(new[] { new Autd3(Vector3.Zero) });
var phases = geometry.PhaseBuffer();
Pattern.Bessel( geometry, geometry.Center + new Vector3(0.0f, 0.0f, 150.0f), Vector3.UnitZ, 18.0f * deg, Pattern.Wavelength(340.0f * m / s), phases);