protected override void Init() { // this one should be an instersection of ranger buffer and current road buffer fineGraphic.Geometry = GeoUtil.GetBuffer(ranger.Graphic.Geometry, meters); #if true fineGraphic.Symbol = new SimpleFillSymbol(SimpleFillSymbolStyle.Solid, Color.FromArgb(defaultAlpha, 0, 0, 0), null); #else fineGraphic.Symbol = GeneralRenderers.DollarPicSymbol.Clone(); #endif ranger.Graphic.GraphicsOverlay.Graphics.Add(fineGraphic); }
protected override void Update(double elapsedSeconds) { double maxRadius = Sensor.Range * 3; double pcRadious = Math.Abs(Math.Sin(1.75 * Math.PI * elapsedSeconds)); double pcOpacity = elapsedSeconds / DurationSeconds; //SimpleFillSymbol s = sensor.AlarmGraphic.Symbol as SimpleFillSymbol; //var curColor = s.Color; //curColor.A = (byte) ((1.0 - Math.Sqrt(pcOpacity)) * 255); //Console.WriteLine("new color = {0}", curColor.A); //s.Color = curColor; sensor.AlarmGraphic.Geometry = GeoUtil.GetBuffer(sensor.Graphic.Geometry, pcRadious * maxRadius); }
protected override void Update(double elapsedSeconds) { double perc = elapsedSeconds / DurationSeconds; #if true fineGraphic.Geometry = GeoUtil.GetBuffer(ranger.Graphic.Geometry, meters); SimpleFillSymbol symbol = fineGraphic.Symbol as SimpleFillSymbol; var curColor = symbol.Color; curColor.A = (byte)((1.0 - Math.Sqrt(perc)) * defaultAlpha); symbol.Color = curColor; #else var sym = fineGraphic.Symbol as PictureMarkerSymbol; double nv = 1.0 - Math.Sqrt(perc); nv = Math.Min(1.0, nv); nv = Math.Max(0.0, nv); sym.Opacity = nv; #endif }