Пример #1
0
        private void button_FigCalc_Click(object sender, EventArgs e)
        {
            m2d = new ClsNac.Mirror2D.Mirror2D(
                Convert.ToDouble(this.textBox_LSM.Text), Convert.ToDouble(this.textBox_LMF.Text),
                Convert.ToDouble(this.textBox_Mtheta.Text), Convert.ToInt32(this.textBox_DivMW.Text), Convert.ToInt32(this.textBox_DivML.Text),
                Convert.ToDouble(this.textBox_MW.Text), Convert.ToDouble(this.textBox_ML.Text));

            ClsNac.Graphic.Plot2dPlane myPlane = new ClsNac.Graphic.Plot2dPlane(this.pictureBox_Figure);
            myPlane.Draw(m2d.m.z3_mod);
            this.textBox_rx.Text = Convert.ToString(m2d.m.rx[m2d.m.divL / 2]);
            this.textBox_ry.Text = Convert.ToString(m2d.m.ry[m2d.m.divL / 2]);
        }
Пример #2
0
        private void button_WaveOptCalc_Click(object sender, EventArgs e)
        {
            #region cancel
            if (this._cts == null)
            {
                this._cts = new CancellationTokenSource();
            }
            else
            {
                this._cts.Cancel(true);
                return;
            }
            #endregion

            try
            {

                if (m2d == null)
                {
                    MessageBox.Show("形状がありません");
                    return;
                }

                double lambda = 1e-10 * Convert.ToDouble(this.textBox_WavelengthEnergy.Text);

                #region 光源設定
                wS = new ClsNac.Mirror2D.WaveField.WaveField2D(lambda);

                if (this.radioButton_SourceGauss.Checked)
                {
                    m2d.Source(Convert.ToInt32(this.textBox_SourceDivY.Text), Convert.ToInt32(this.textBox_SourceDivZ.Text),
                    Convert.ToDouble(this.textBox_SourceSizeZ.Text), Convert.ToDouble(this.textBox_SourceSizeZ.Text),
                    ClsNac.Mirror2D.Mirror2D.source.gauss);
                }
                else if (this.radioButton_SourceRectangle.Checked)
                    m2d.Source(Convert.ToInt32(this.textBox_SourceDivY.Text), Convert.ToInt32(this.textBox_SourceDivZ.Text),
                    Convert.ToDouble(this.textBox_SourceSizeZ.Text), Convert.ToDouble(this.textBox_SourceSizeZ.Text));
                else
                {
                    m2d.Source(1, 1, 0, 0);

                }

                wS.Initialize(m2d.s.x, m2d.s.y, m2d.s.z, _u: m2d.s.u);
                #endregion

                #region ミラー設定
                wM = new ClsNac.Mirror2D.WaveField.WaveField2D(lambda);
                wM.Initialize(m2d.m.x3, m2d.m.y3, m2d.m.z3, m2d.m.reflect);
                #endregion

                #region 焦点設定
                //焦点設定
                m2d.Focus(
                    Convert.ToInt32(this.textBox_Dnx.Text), Convert.ToDouble(this.textBox_Ddx.Text),
                    Convert.ToInt32(this.textBox_Dny.Text), Convert.ToDouble(this.textBox_Ddy.Text),
                    Convert.ToInt32(this.textBox_Dnz.Text), Convert.ToDouble(this.textBox_Ddz.Text));
                wF = new ClsNac.Mirror2D.WaveField.WaveField2D[m2d.f.nx];
                for (int i = 0; i < m2d.f.nx; i++)
                {
                    wF[i] = new ClsNac.Mirror2D.WaveField.WaveField2D(lambda);
                    wF[i].Initialize(m2d.f.x[i], m2d.f.y[i], m2d.f.z[i]);
                }
                #endregion

            }
            catch (Exception ex)
            { }

            //伝播計算
            wM.ForwardPropagation(wS);
            for (int i = 0; i < wF.Length; i++)
                wF[i].ForwardPropagation(wM);
            //

            //表示
            ClsNac.Graphic.Plot2dPlane myPlane = new ClsNac.Graphic.Plot2dPlane(this.pictureBox_Focus);
            myPlane.Draw(wF[wF.Length / 2].Intensity);
            //
        }
Пример #3
0
        void scan2D_graphSet(CountData2D scan2DData)
        {
            double[][,] data = scan2DData.NCountData2D(NormalizedCh);

            BeginInvoke((Action)(() =>
            {
                ClsNac.Graphic.Plot2dPlane Plane;
                for (int k = 0; k < nCh; k++)
                {
                    Plane = new ClsNac.Graphic.Plot2dPlane(picBox[k]);
                    Plane.Draw(data[k], this.woZero);
                    this.dataGridView_Counter["Column_Count", k].Value = scan2DData.count[k];
                }
                
            }));
        }