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(); }
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(); }
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++; }
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();*/ }
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(); }
public void DrawPlanePosition(object obj, RunWorkerCompletedEventArgs e) { DrawingMechanism d = (DrawingMechanism)e.Result; this.PathPlanePosition.Data = d.ResultGeometry; }