plane
srcplane は指定方向に伝搬する平面波を生成する.
plane(&geometry, direction, wavelength, &option, &mut dst);plane(geometry, direction, wavelength, option, dst)Pattern.Plane(geometry, direction, wavelength, option, dst);| 引数 | 型 | 説明 |
|---|---|---|
geometry |
&Geometry |
デバイス配置 |
direction |
UnitVector3<f32> |
平面波の伝搬方向 (単位ベクトル) |
wavelength |
Length |
波長 |
option |
&PlaneOption |
追加オプション (下記参照) |
dst |
&mut [[Emission; _]] |
出力バッファ |
PlaneOption
Section titled “PlaneOption”PlaneOption { intensity, phase_offset,}PlaneOption( intensity, phase_offset,)new PlaneOption( intensity, phaseOffset)| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
intensity |
Intensity |
Intensity::MAX |
全振動子の振幅 |
phase_offset |
Phase |
Phase::ZERO |
全振動子へ一律に加算する位相 |
Example
Section titled “Example”use autd3_rs::geometry::{Autd3, Geometry, Vector3};use autd3_rs::units::{m, s};use autd3_rs::value::{Intensity, Phase};use autd3_rs_pattern::{PlaneOption, plane, wavelength};
let geometry = Geometry::new(vec![Autd3::default()]);
let mut dst = geometry.pattern_buffer();
plane( &geometry, Vector3::z_axis(), wavelength(340.0 * m / s), &PlaneOption { intensity: Intensity::MAX, phase_offset: Phase::ZERO, }, &mut dst,);import numpy as npfrom autd3.geometry import Autd3, Geometryfrom autd3.units import m, sfrom autd3.value import Intensity, Phasefrom autd3_pattern import PlaneOption, plane, wavelength
geometry = Geometry([Autd3([0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0])])
dst = geometry.pattern_buffer()
plane( geometry, np.array([0.0, 0.0, 1.0]), wavelength(340 * m / s), PlaneOption( intensity=Intensity.MAX, phase_offset=Phase.ZERO, ), dst,)using System.Numerics;using AUTD3;using static AUTD3.Units;
var geometry = new Geometry(new[] { new Autd3(Vector3.Zero) });
var dst = geometry.PatternBuffer();
Pattern.Plane( geometry, Vector3.UnitZ, Pattern.Wavelength(340.0f * m / s), new PlaneOption( intensity: Intensity.Max, phaseOffset: Phase.Zero ), dst);