public static FuncUniformDataSource3D<Vector3D> CreateTangentPotentialField(PotentialField3D potentialField, int width = 100, int height = 100, int depth = 100) { FuncUniformDataSource3D<Vector3D> dataSource = new FuncUniformDataSource3D<Vector3D>( (i, j, k) => potentialField.GetTangentVector(new Point3D(i / (double)width, j / (double)height, k / (double)depth)), width: width, height: height, depth: depth); return dataSource; }
public static FuncUniformDataSource3D<Vector3D> CreatePotentialField(int width, int height, int depth, params PotentialPoint3D[] points) { var potentialField = new PotentialField3D(); potentialField.AddPoints(points); return CreatePotentialField(potentialField, width: width, height: height, depth: depth); }
public static FuncUniformDataSource3D <Vector3D> CreateTangentPotentialField(PotentialField3D potentialField, int width = 100, int height = 100, int depth = 100) { FuncUniformDataSource3D <Vector3D> dataSource = new FuncUniformDataSource3D <Vector3D>( (i, j, k) => potentialField.GetTangentVector(new Point3D(i / (double)width, j / (double)height, k / (double)depth)), width: width, height: height, depth: depth); return(dataSource); }
public static FuncUniformDataSource3D <Vector3D> CreatePotentialField(int width, int height, int depth, params PotentialPoint3D[] points) { var potentialField = new PotentialField3D(); potentialField.AddPoints(points); return(CreatePotentialField(potentialField, width: width, height: height, depth: depth)); }
void MainWindow_Loaded(object sender, RoutedEventArgs e) { PotentialField3D field = new PotentialField3D(); field.AddPotentialPoint(new Point3D(0.5, 0.5, 0.5), 2); field.AddPotentialPoint(new Point3D(0.2, 0.2, 0.5), -3); field.AddPotentialPoint(new Point3D(0.8, 0.2, 0.9), 10); field.AddPotentialPoint(new Point3D(0.3, 0.7, 0.1), 5); var dataSource3D = VectorField3D.CreateTangentPotentialField(field, 200, 200, 200); isoSurface.DataSource = dataSource3D.GetMagnitudeDataSource(); }
private void MainWindow_Loaded(object sender, RoutedEventArgs e) { PotentialField3D field = new PotentialField3D(); field.AddPotentialPoint(new Point3D(0.5, 0.5, 0.5), 2); field.AddPotentialPoint(new Point3D(0.2, 0.2, 0.5), -3); field.AddPotentialPoint(new Point3D(0.8, 0.2, 0.9), 10); field.AddPotentialPoint(new Point3D(0.3, 0.7, 0.1), 5); var dataSource3D = VectorField3D.CreateTangentPotentialField(field, 200, 200, 200); streamlineChart.DataSource = dataSource3D; dynamicStreamLine.DataSource = dataSource3D; dynamicStreamLine.Pattern = patternChart.OutPattern; }
private void MainWindow_Loaded(object sender, RoutedEventArgs e) { PotentialField3D field = new PotentialField3D(); field.AddPotentialPoint(new Point3D(0.5, 0.5, 0.5), 2); field.AddPotentialPoint(new Point3D(0.2, 0.2, 0.5), -3); field.AddPotentialPoint(new Point3D(0.8, 0.2, 0.9), 10); field.AddPotentialPoint(new Point3D(0.3, 0.7, 0.1), 5); dataSource3D = VectorField3D.CreateTangentPotentialField(field, 200, 200, 200); plotterXY.DataContext = dataSource3D.CreateSectionXY(0.0); plotterXZ.DataContext = dataSource3D.CreateSectionXZ(0.0); plotterYZ.DataContext = dataSource3D.CreateSectionYZ(0.0); }
void MainWindow_Loaded(object sender, RoutedEventArgs e) { PotentialField3D field = new PotentialField3D(); field.AddPotentialPoint(new Point3D(0.5, 0.5, 0.5), 2); field.AddPotentialPoint(new Point3D(0.2, 0.2, 0.5), -3); field.AddPotentialPoint(new Point3D(0.8, 0.2, 0.9), 10); field.AddPotentialPoint(new Point3D(0.3, 0.7, 0.1), 5); var dataSource3D = VectorField3D.CreateTangentPotentialField(field, 200, 200, 200); convolutionStack.DataSource = dataSource3D; progressBar.SetBinding(ProgressBar.ValueProperty, new Binding("RenderingProgress") { Source = convolutionStack }); }
void MainWindow_Loaded(object sender, RoutedEventArgs e) { tabControl.SelectionChanged += new SelectionChangedEventHandler(tabControl_SelectionChanged); PotentialField3D field = new PotentialField3D(); field.AddPotentialPoint(new Point3D(0.5, 0.5, 0.5), 2); field.AddPotentialPoint(new Point3D(0.2, 0.2, 0.5), -3); field.AddPotentialPoint(new Point3D(0.8, 0.2, 0.9), 10); field.AddPotentialPoint(new Point3D(0.3, 0.7, 0.1), 5); PotentialFieldChart3D fieldChart = new PotentialFieldChart3D { Field = field }; viewport.Children.Insert(0, fieldChart); dataSource3D = VectorField3D.CreateTangentPotentialField(field, 200, 200, 200); //dataSource3D = VectorField3D.CreatePotentialField(200, 200, 200, // new PotentialPoint3D(new Point3D(0.5, 0.5, 0.5), 2), new PotentialPoint3D(new Point3D(0.2, 0.2, 0.5), -1)); DataContext = dataSource3D; isoSurface.DataSource = dataSource3D.GetMagnitudeDataSource(); //var spiralDS = VectorField3D.CreateSpiral( // latticeX: 10, latticeY: 20, latticeZ: 3, // width: 2, height: 2, depth: 1).TransformGrid(transform); var filteredDataSource = dataSource3D.Filter(20, 20, 20); //vectorChart3D.DataSource = filteredDataSource; //gridChart.GridSource = filteredDataSource; //timer.Start(); plotterXY.DataContext = dataSource3D.CreateSectionXY(0.0); plotterXZ.DataContext = dataSource3D.CreateSectionXZ(0.0); plotterYZ.DataContext = dataSource3D.CreateSectionYZ(0.0); sectionChartX.ThirdCoordinate = 0.0001; sectionChartY.ThirdCoordinate = 0.0001; sectionChartZ.ThirdCoordinate = 0.0001; sectionChartX.UpdateUI(); sectionChartY.UpdateUI(); sectionChartZ.UpdateUI(); mainTabControl.SelectedIndex = 3; convolutionStack.DataSource = dataSource3D; UpdateSelectedTab(); progressBar.SetBinding(ProgressBar.ValueProperty, new Binding("RenderingProgress") { Source = convolutionStack }); }
private void MainWindow_Loaded(object sender, RoutedEventArgs e) { PotentialField3D field = new PotentialField3D(); field.AddPotentialPoint(new Point3D(0.5, 0.5, 0.5), 2); field.AddPotentialPoint(new Point3D(0.2, 0.2, 0.5), -3); field.AddPotentialPoint(new Point3D(0.8, 0.2, 0.9), 10); field.AddPotentialPoint(new Point3D(0.3, 0.7, 0.1), 5); dataSource3D = VectorField3D.CreateTangentPotentialField(field, 200, 200, 200); DataContext = dataSource3D; sectionChartX.ThirdCoordinate = 0.0001; sectionChartY.ThirdCoordinate = 0.0001; sectionChartZ.ThirdCoordinate = 0.0001; UpdateSelectedTab(); PotentialFieldChart3D fieldChart = new PotentialFieldChart3D { Field = field }; viewport.Children.Insert(0, fieldChart); }