示例#1
0
        private void InitialParametersMechanism()
        {
            DrawingMechanism.mechanism = new MechanismAnalys();

            /*MechanismAnalys.X_A = 0;
             * MechanismAnalys.Y_A = 0;
             * MechanismAnalys.X_D = 0.4;
             * MechanismAnalys.Y_D = 0;
             * MechanismAnalys.l2 = 0.14;
             * //MechanismAnalys.l2 = Convert.ToDouble(textBoxL_AB.Text);
             * MechanismAnalys.l3 = 0.4;//Convert.ToDouble(textBoxL_BC.Text);
             * MechanismAnalys.l4 = 0.32;//Convert.ToDouble(textBoxL_CD.Text);
             * MechanismAnalys.l_AD = 0.4;//Convert.ToDouble(textBoxL_AD.Text);
             * MechanismAnalys.l_AS_2 = 0.07;//Convert.ToDouble(textBoxAS_2.Text);
             * MechanismAnalys.l_BS_3 = 0.16;//Convert.ToDouble(textBoxBS_3.Text);
             * MechanismAnalys.l_DS_4 = 0.16;//Convert.ToDouble(textBoxCS_4.Text);
             * MechanismAnalys.Omega = 41;//Convert.ToDouble(textBoxOmega.Text);
             * MechanismAnalys.Epsilon = 0;//Convert.ToDouble(textBoxEpsilon.Text);*/
            //if (checkBoxOmegaDirect.Checked) { MechanismAnalys.OmegaDirect = -1; } else MechanismAnalys.OmegaDirect = 1;
            //if (checkBoxEpsilonDirect.Checked) { MechanismAnalys.EpsilonDirect = -1; } else MechanismAnalys.EpsilonDirect = 1;
            //MechanismAnalys.InitParameter(Convert.ToInt32(textBoxQuantIteration.Text));
            // Program.ArrayKinematicAnalys = new KinematikAnalys[KinematikAnalys.QuantIteration];
            //QuantPosition = 100;
            //
            DrawingMechanism.plan_position = new MechanismAnalys[DrawingMechanism.QuantPosition];
            DrawingMechanism.CalculationPlanPosition();
            //MechanismAnalys.CalculationPlanPosition(ref mechanism, 8);
            InitialViewParameters();
        }
示例#2
0
        private void buttonNext_Click(object sender, RoutedEventArgs e)
        {
            DoWorkEventArgs e2 = new DoWorkEventArgs(null);

            DrawingMechanism.Calculation(null, e2);
            this.PathPlanePosition.Data = ((DrawingMechanism)e2.Result).ResultGeometry;
            VisibleParameters();
        }
示例#3
0
        public static void Calculation(object obj, DoWorkEventArgs e)
        {
            if ((NumberPosition >= QuantPosition) && IsCyclingMotion)
            {
                NumberPosition = 0;
            }
            else if (NumberPosition >= QuantPosition)
            {
                NumberPosition = QuantPosition - 1;
            }
            ;

            DrawingMechanism res = new DrawingMechanism();

            res.ResultGeometry          = new GeometryGroup();
            res.ResultGeometry.FillRule = FillRule.Nonzero;

            MechanismAnalys.PlanPositionParameters mechanism = new MechanismAnalys.PlanPositionParameters;


            DrawingMechanism.mechanism = plan_position[NumberPosition];
            A            = new Point(X_center + MechanismAnalys.X_A * Score, Y_center - MechanismAnalys.Y_A * Score);
            B            = new Point(X_center + mechanism.X_Bn * Score, Y_center - mechanism.Y_Bn * Score);
            C            = new Point(X_center + mechanism.X_Cn * Score, Y_center - mechanism.Y_Cn * Score);
            D            = new Point(X_center + MechanismAnalys.X_D * Score, Y_center - MechanismAnalys.Y_D * Score);
            res.lineAB   = new LineGeometry(A, B);
            res.lineBC   = new LineGeometry(B, C);
            res.lineCD   = new LineGeometry(C, D);
            res.ellipseA = new EllipseGeometry(A, 3, 3);
            res.ellipseB = new EllipseGeometry(B, 3, 3);
            res.ellipseC = new EllipseGeometry(C, 3, 3);
            res.ellipseD = new EllipseGeometry(D, 3, 3);
            res.ellipseA = new EllipseGeometry(A, 3, 3);
            res.ellipseA = new EllipseGeometry(A, 3, 3);
            double endX = 0;
            double endY = 0;


            res.ResultGeometry.Children.Add(res.lineAB);
            res.ResultGeometry.Children.Add(res.lineBC);
            res.ResultGeometry.Children.Add(res.lineCD);
            res.ResultGeometry.Children.Add(res.ellipseA);
            res.ResultGeometry.Children.Add(res.ellipseB);
            res.ResultGeometry.Children.Add(res.ellipseC);
            res.ResultGeometry.Children.Add(res.ellipseD);
            if (IsVisibleVectorVelocity)
            {
                OperatorFunction.F2(B.X, B.Y, LengthVectorVelocity, mechanism.alpha_2n, ref endX, ref endY);
                res.alpha_2n = new LineGeometry(B, new Point(endX, endY));
                OperatorFunction.F2(C.X, C.Y, LengthVectorVelocity, mechanism.alpha_3n, ref endX, ref endY);
                res.alpha_4n = new LineGeometry(B, new Point(endX, endY));
                res.ResultGeometry.Children.Add(res.alpha_2n);
                res.ResultGeometry.Children.Add(res.alpha_4n);
            }
            e.Result = res;
            NumberPosition++;
        }
示例#4
0
        private void OnTimer(object obj, EventArgs e)
        {
            //additional_thread.RunWorkerAsync();
            DoWorkEventArgs e2 = new DoWorkEventArgs(null);

            DrawingMechanism.Calculation(null, e2);
            this.PathPlanePosition.Data = ((DrawingMechanism)e2.Result).ResultGeometry;
            VisibleParameters();

            /*DrawingMechanism.mechanism = plan_position[NumberPosition];
             * additional_thread.RunWorkerAsync();*/
        }
示例#5
0
        public void StartAnimation()
        {
            if (timer == null)
            {
                InitialParametersMechanism();
                DrawingMechanism.CalculationPlanPosition();
            }
            ;
            if ((timer != null) && (timer.IsEnabled))
            {
                timer.Stop(); buttonMotion.Content = "Старт"; return;
            }
            timer          = new System.Windows.Threading.DispatcherTimer();
            timer.Tick    += OnTimer;
            timer.Interval = TimeSpan.FromMilliseconds(10);
            timer.Start();


            //DrawingMechanism.mechanism = plan_position[NumberPosition];
            //additional_thread.RunWorkerAsync();
        }
示例#6
0
        public void DrawPlanePosition(object obj, RunWorkerCompletedEventArgs e)
        {
            DrawingMechanism d = (DrawingMechanism)e.Result;

            this.PathPlanePosition.Data = d.ResultGeometry;
        }