public ParticleSystem(int maxCount, System.Windows.Media.Color color) { this.maxParticleCount = maxCount; this.particleList = new List<Particle>(); this.particleModel = new GeometryModel3D(); this.particleModel.Geometry = new MeshGeometry3D(); Ellipse e = new Ellipse(); e.Width = 32.0; e.Height = 32.0; RadialGradientBrush b = new RadialGradientBrush(); b.GradientStops.Add(new GradientStop(System.Windows.Media.Color.FromArgb(0xFF, color.R, color.G, color.B), 0.25)); b.GradientStops.Add(new GradientStop(System.Windows.Media.Color.FromArgb(0x00, color.R, color.G, color.B), 1.0)); e.Fill = b; e.Measure(new System.Windows.Size(32, 32)); e.Arrange(new Rect(0, 0, 32, 32)); var brush = new VisualBrush(e); DiffuseMaterial material = new DiffuseMaterial(brush); this.particleModel.Material = material; this.rand = new Random(brush.GetHashCode()); }
private void AddGraphicToMap_Click(object sender, RoutedEventArgs e) { // Create a diagonal linear gradient with four stops. // http://msdn.microsoft.com/en-us/library/system.windows.media.lineargradientbrush.aspx LinearGradientBrush myLinearGradientBrush = new LinearGradientBrush(); myLinearGradientBrush.StartPoint = new Point(0, 0); myLinearGradientBrush.EndPoint = new Point(1, 1); myLinearGradientBrush.GradientStops.Add( new GradientStop(Colors.Yellow, 0.0)); myLinearGradientBrush.GradientStops.Add( new GradientStop(Colors.Red, 0.25)); myLinearGradientBrush.GradientStops.Add( new GradientStop(Colors.Blue, 0.75)); myLinearGradientBrush.GradientStops.Add( new GradientStop(Colors.LimeGreen, 1.0)); // Add an Ellipse Element // http://msdn.microsoft.com/en-us/library/system.windows.shapes.ellipse.aspx Ellipse myEllipse = new Ellipse(); myEllipse.Stroke = System.Windows.Media.Brushes.Black; myEllipse.Fill = myLinearGradientBrush; myEllipse.HorizontalAlignment = HorizontalAlignment.Left; myEllipse.VerticalAlignment = VerticalAlignment.Center; myEllipse.Width = 50; myEllipse.Height = 50; //Force render myEllipse.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity)); myEllipse.Arrange(new Rect(myEllipse.DesiredSize)); RenderTargetBitmap render = new RenderTargetBitmap(200, 200, 150, 150, PixelFormats.Pbgra32); render.Render(myEllipse); PictureMarkerSymbol pms = new PictureMarkerSymbol() { Source = render, }; Random random = new Random(); var graphic = new Graphic() { Geometry = new MapPoint(random.Next(-20000000, 20000000), random.Next(-20000000, 20000000)) }; graphic.Symbol = pms; MarkerGraphicsLayer.Graphics.Add(graphic); }
public ParticleSystem(int maxCount, Color color) { _maxParticleCount = maxCount; _particleModel = new GeometryModel3D {Geometry = new MeshGeometry3D()}; _particleList = new List<Particle>(); //FELO: Drawing particle: Ellipse. var ellipse = new Ellipse {Width = ParticleSizeConst, Height = ParticleSizeConst}; var radialGradientBrush = new RadialGradientBrush(); radialGradientBrush.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, color.R, color.G, color.B), StandardColorOffset)); radialGradientBrush.GradientStops.Add(new GradientStop(Color.FromArgb(0x00, color.R, color.G, color.B), StandardColorOffsetBorder)); ellipse.Fill = radialGradientBrush; ellipse.Measure(new Size(ParticleSizeConst, ParticleSizeConst)); ellipse.Arrange(new Rect(0, 0, ParticleSizeConst, ParticleSizeConst)); ApplyMaterialToBrush(ellipse); }
public ParticleSystem(int maxCount, Color color) { MaxParticleCount = maxCount; _particleList = new List<Particle>(); _particleModel = new GeometryModel3D {Geometry = new MeshGeometry3D()}; var e = new Ellipse { Width = 32.0, Height = 32.0 }; var b = new RadialGradientBrush(); b.GradientStops.Add(new GradientStop(Color.FromArgb(0xFF, color.R, color.G, color.B), 0.25)); b.GradientStops.Add(new GradientStop(Color.FromArgb(0x00, color.R, color.G, color.B), 1.0)); e.Fill = b; e.Measure(new Size(32, 32)); e.Arrange(new Rect(0, 0, 32, 32)); Brush brush = null; #if USE_VISUALBRUSH brush = new VisualBrush(e); #else var renderTarget = new RenderTargetBitmap(32, 32, 96, 96, PixelFormats.Pbgra32); renderTarget.Render(e); renderTarget.Freeze(); brush = new ImageBrush(renderTarget); #endif var material = new DiffuseMaterial(brush); _particleModel.Material = material; _rand = new Random(brush.GetHashCode()); }
public ParticleSystem(int maxCount, System.Windows.Media.Color color) { this.maxParticleCount = maxCount; this.particleList = new List<Particle>(); this.particleModel = new GeometryModel3D(); this.particleModel.Geometry = new MeshGeometry3D(); Ellipse e = new Ellipse(); e.Width = 32.0; e.Height = 32.0; RadialGradientBrush b = new RadialGradientBrush(); b.GradientStops.Add(new GradientStop(System.Windows.Media.Color.FromArgb(0xFF, color.R, color.G, color.B), 0.25)); b.GradientStops.Add(new GradientStop(System.Windows.Media.Color.FromArgb(0x00, color.R, color.G, color.B), 1.0)); e.Fill = b; e.Measure(new System.Windows.Size(32, 32)); e.Arrange(new Rect(0, 0, 32, 32)); System.Windows.Media.Brush brush = null; #if USE_VISUALBRUSH brush = new VisualBrush(e); #else RenderTargetBitmap renderTarget = new RenderTargetBitmap(32, 32, 96, 96, PixelFormats.Pbgra32); renderTarget.Render(e); renderTarget.Freeze(); brush = new ImageBrush(renderTarget); #endif DiffuseMaterial material = new DiffuseMaterial(brush); this.particleModel.Material = material; this.rand = new Random(brush.GetHashCode()); }
private void CreateBitmap(bool filled) { double innerDiameter = m_compassInner.Width; var circle = new Ellipse(); circle.Width = innerDiameter/2; circle.Height = innerDiameter/2; circle.Fill = filled ? Brushes.White : Brushes.Transparent; circle.Stroke = filled ? Brushes.Transparent : Brushes.White; double dpiX, dpiY; GetScreenDpi(out dpiX, out dpiY); var bitmap = new RenderTargetBitmap((int)innerDiameter, (int)innerDiameter, dpiX, dpiY, PixelFormats.Pbgra32); circle.Arrange(new Rect(new Size(innerDiameter, innerDiameter))); bitmap.Render(circle); m_compassInner.Source = bitmap; m_compassInner.InvalidateVisual(); }