Beispiel #1
0
        private static Gain Focus(AUTD autd, Vector3d point)
        {
            var devNum = autd.NumDevices;

            var data = new ushort[devNum, AUTD.NumTransInDevice];

            var waveNumber = 2.0 * Math.PI / autd.Wavelength;

            for (var dev = 0; dev < devNum; dev++)
            {
                for (var i = 0; i < AUTD.NumTransInDevice; i++)
                {
                    var          tp    = autd.TransPosition(dev, i);
                    var          dist  = (tp - point).L2Norm;
                    var          phase = ToPhase(waveNumber * dist);
                    const ushort duty  = 0xFF;
                    data[dev, i] = (ushort)((duty << 8) | phase);
                }
            }

            return(Gain.Custom(data));
        }