private Point RotateVector(Point o, double angleRadian) { Point point = new Point(); point.set_X((o.get_X() * Math.Cos(angleRadian)) - (o.get_Y() * Math.Sin(angleRadian))); point.set_Y((o.get_X() * Math.Sin(angleRadian)) + (o.get_Y() * Math.Cos(angleRadian))); point.set_X((double)((int)point.get_X())); point.set_Y((double)((int)point.get_Y())); return(point); }
public Point CalcNonStraightCenter(Point pTo) { Point point = new Point(); point.set_X(base.PointCore.get_X() + (Math.Sign((double) (pTo.get_X() - base.PointCore.get_X())) * 6)); point.set_Y(base.PointCore.get_Y() + (Math.Sign((double) (pTo.get_Y() - base.PointCore.get_Y())) * 6)); return point; }
private Point PointData2Point(PointData pd1, Rectangle rc) { Point point = new Point(); point.set_X(this.Position2PointX(pd1.Position, rc)); point.set_Y(this.DateTime2PointY(pd1.DateTime, rc)); return(point); }
public Point CalcCenter(Point pTo) { Point point = new Point(); point.set_X(this.PointCore.get_X() + (((int)(pTo.get_X() - this.PointCore.get_X())) >> 1)); point.set_Y(this.PointCore.get_Y() + (((int)(pTo.get_Y() - this.PointCore.get_Y())) >> 1)); return(point); }
public Point CalcNonStraightCenter(Point pTo) { Point point = new Point(); point.set_X(base.PointCore.get_X() + (Math.Sign((double)(pTo.get_X() - base.PointCore.get_X())) * 6)); point.set_Y(base.PointCore.get_Y() + (Math.Sign((double)(pTo.get_Y() - base.PointCore.get_Y())) * 6)); return(point); }
public static bool GetOffsettedValue(PathElement peHead, double HeadOffset, int HeadElementArrivedSource, ref Point ptOut) { Point point = new Point(); int[] sources = peHead.GetSources(); Debug.Assert(sources.Length == 2); Point connectionSourcePoint = peHead.GetConnectionSourcePoint(sources[0]); Point point3 = peHead.GetConnectionSourcePoint(sources[1]); if (sources.Length != 2) { return(false); } double introduced12 = Math.Pow(connectionSourcePoint.get_X() - point3.get_X(), 2.0); double num = Math.Sqrt(introduced12 + Math.Pow(connectionSourcePoint.get_Y() - point3.get_Y(), 2.0)); double num2 = (num * HeadOffset) / ((peHead.Length == 0) ? ((double)1) : ((double)peHead.Length)); double num3 = 1.0; double num4 = 0.0; if (!(connectionSourcePoint.get_Y() == point3.get_Y())) { num3 = Math.Abs((double)(point3.get_X() - connectionSourcePoint.get_X())) / num; num4 = Math.Abs((double)(point3.get_Y() - connectionSourcePoint.get_Y())) / num; } double num5 = num2 * num3; double num6 = num2 * num4; if (HeadElementArrivedSource == sources[0]) { if (connectionSourcePoint.get_X() <= point3.get_X()) { connectionSourcePoint.set_X(connectionSourcePoint.get_X() + ((int)num5)); } else { connectionSourcePoint.set_X(connectionSourcePoint.get_X() - ((int)num5)); } if (connectionSourcePoint.get_Y() <= point3.get_Y()) { connectionSourcePoint.set_Y(connectionSourcePoint.get_Y() + ((int)num6)); } else { connectionSourcePoint.set_Y(connectionSourcePoint.get_Y() - ((int)num6)); } point = connectionSourcePoint; } else { if (point3.get_X() <= connectionSourcePoint.get_X()) { point3.set_X(point3.get_X() + ((int)num5)); } else { point3.set_X(point3.get_X() - ((int)num5)); } if (point3.get_Y() <= connectionSourcePoint.get_Y()) { point3.set_Y(point3.get_Y() + ((int)num6)); } else { point3.set_Y(point3.get_Y() - ((int)num6)); } point = point3; } ptOut = point; return(true); }
private void DrawCurve(TrainCurveData c, Rectangle rc, List <Line> rectangles, int startIndex) { if ((c != null) && (c.Points != null)) { PointData data; PointData data2; int num = 0; int num2 = -1; Line item = new Line(); Color color = Colors.get_Black(); double widthRequires = 0.0; if (c.Points.Count > 0) { widthRequires = this.DrawCurveTitle(rc, c.Points[0], c.Points[0], c.Caption, false); } for (int i = startIndex; i < (c.Points.Count - 1); i++) { data = c.Points[i]; data2 = c.Points[i + 1]; if (!c.Regular) { TimeSpan span = (TimeSpan)(data.DateTime - data2.DateTime); if (this.IsGap((double)(data.Position - data2.Position), span.TotalMinutes)) { c.CaptionHasDrawn = false; c.CaptionStartIndex = i + 1; continue; } } color = SilverlightHelper.ConvertToColor(data2.Color); Line line2 = new Line(); line2.set_X1(this.Position2PointX(data.Position, rc)); line2.set_Y1(this.DateTime2PointY(data.DateTime, rc)); line2.set_X2(this.Position2PointX(data2.Position, rc)); line2.set_Y2(this.DateTime2PointY(data2.DateTime, rc)); line2.set_Width(1251.0); line2.set_Height(this.CanvasRoot_ActualHeight); line2.set_StrokeThickness(2.0); line2.set_Stroke(new SolidColorBrush(color)); this.CanvasRoot.get_Children().Add(line2); if (c.Regular && (c.Caption.Length > 0)) { if (!this.HasInsersection(rectangles, line2)) { int num5 = data2.Position - data.Position; if (num5 > num) { num = num5; num2 = i; item = this.LineClone(line2); } } } else if (!c.CaptionHasDrawn) { int num6; int num7; int num8; bool flag; if (this.GetGoodPointsForTitle(c, c.CaptionStartIndex, rc, widthRequires, out num6, out num7, out num8, out flag)) { c.CaptionHasDrawn = true; this.DrawCurveTitle(rc, c.Points[num6], c.Points[num7], c.Caption, true); } else if (flag) { c.CaptionStartIndex = num8; } } } if ((c.Regular && (c.Caption.Length > 0)) && (num2 != -1)) { data = c.Points[num2]; data2 = c.Points[num2 + 1]; color = SilverlightHelper.ConvertToColor(data2.Color); if (rectangles != null) { rectangles.Add(item); } Point point = new Point(); Point point2 = new Point(); point.set_X(this.Position2PointX(data.Position, rc)); point.set_Y(this.DateTime2PointY(data.DateTime, rc)); point2.set_X(this.Position2PointX(data2.Position, rc)); point2.set_Y(this.DateTime2PointY(data2.DateTime, rc)); double rotationAngle = SilverlightHelper.GetRotationAngle(point, point2); double num10 = point2.get_X() - point.get_X(); TextBlock block = new TextBlock(); block.SetValue(Canvas.TopProperty, point.get_Y() + 5.0); block.SetValue(Canvas.LeftProperty, point.get_X()); block.SetValue(FrameworkElement.WidthProperty, num10); block.SetValue(FrameworkElement.HeightProperty, 50.0); block.set_Width(num10); block.set_Text(c.Caption); block.set_FontSize(17.0); block.set_FontFamily(new FontFamily("Arial")); block.set_Foreground(new SolidColorBrush(color)); block.set_FontStyle(FontStyles.get_Normal()); block.set_FontWeight(FontWeights.get_Bold()); RotateTransform transform = new RotateTransform(); transform.set_Angle(-rotationAngle); block.set_RenderTransform(transform); block.set_TextAlignment(0); this.CanvasRoot.get_Children().Add(block); } } }
public Point CalcCenter(Point pTo) { Point point = new Point(); point.set_X(this.PointCore.get_X() + (((int) (pTo.get_X() - this.PointCore.get_X())) >> 1)); point.set_Y(this.PointCore.get_Y() + (((int) (pTo.get_Y() - this.PointCore.get_Y())) >> 1)); return point; }
private void OpenForecastFloatPopup() { Point point = new Point(0.0, 0.0); if (this.forecastGrid.SelectedItem != null) { this.airDataContext.CurrentZoneForecast = this.forecastGrid.SelectedItem as BEPB.Forecast; this.forecastMsg.set_Visibility(0); string zone = this.airDataContext.CurrentZoneForecast.Zone; if (zone != null) { if (!(zone == "城六区")) { if (zone == "西北部") { if (this.LastSelectedFive != this.NorthWest) { if (this.LastSelectedFive != null) { this.LastSelectedFive.Fill = this.LastSelectedFiveBrush; } this.LastSelectedFive = this.NorthWest; this.LastSelectedFiveBrush = this.brFive; } this.NorthWest.Fill = new SolidColorBrush(Colors.get_Red()); point = this.map.LocationToViewportPoint(this.NorthWestText.Location); } else if (zone == "东北部") { if (this.LastSelectedFive != this.NorthEast) { if (this.LastSelectedFive != null) { this.LastSelectedFive.Fill = this.LastSelectedFiveBrush; } this.LastSelectedFive = this.NorthEast; this.LastSelectedFiveBrush = this.brFive; } this.NorthEast.Fill = new SolidColorBrush(Colors.get_Red()); point = this.map.LocationToViewportPoint(this.NorthEastText.Location); } else if (zone == "东南部") { if (this.LastSelectedFive != this.SouthEast) { if (this.LastSelectedFive != null) { this.LastSelectedFive.Fill = this.LastSelectedFiveBrush; } this.LastSelectedFive = this.SouthEast; this.LastSelectedFiveBrush = this.brFive; } this.SouthEast.Fill = new SolidColorBrush(Colors.get_Red()); point = this.map.LocationToViewportPoint(this.SouthEastText.Location); } else if (zone == "西南部") { if (this.LastSelectedFive != this.SouthWest) { if (this.LastSelectedFive != null) { this.LastSelectedFive.Fill = this.LastSelectedFiveBrush; } this.LastSelectedFive = this.SouthWest; this.LastSelectedFiveBrush = this.brFive; } this.SouthWest.Fill = new SolidColorBrush(Colors.get_Red()); point = this.map.LocationToViewportPoint(this.SouthWestText.Location); } } else { if (this.LastSelectedFive != this.CityCenter) { if (this.LastSelectedFive != null) { this.LastSelectedFive.Fill = this.LastSelectedFiveBrush; } this.LastSelectedFive = this.CityCenter; this.LastSelectedFiveBrush = this.brFive; } this.CityCenter.Fill = new SolidColorBrush(Colors.get_Red()); point = this.map.LocationToViewportPoint(this.CityCenterText.Location); } } } this.ForecastBorder.set_DataContext(this.airDataContext.CurrentZoneForecast); double popupWidth = 315.0; double popupHeight = 254.0; string isNight = this.airDataContext.CurrentZoneForecast.IsNight; if (isNight != null) { if (!(isNight == "0")) { if (isNight == "1") { popupHeight = 462.0; } } else { popupHeight = 254.0; } } this.FloatForecastPopup.set_Width(popupWidth); this.FloatForecastPopup.set_Height(popupHeight); point.set_X(point.get_X() * this.mapScale); point.set_Y(point.get_Y() * this.mapScale); this.SetPopupOffset(point, this.airDataContext.CurrentZoneForecast.Zone, popupWidth, popupHeight, ref this.FloatForecastPopup); this.FloatForecastPopup.Open(point, new Rect(10.0, 10.0, this.map.get_ActualWidth() - 10.0, this.map.get_ActualHeight() - 10.0)); }
public virtual Point GetTrainPoint(ArrayList alTrains, TrainBase t) { int index = -1; if (alTrains.Count > 1) { index = alTrains.IndexOf(t); } Point trainPoint = this.GetTrainPoint(); PathElement element = this; Point point2 = new Point(); if (t.HeadElementArrivedSource != -1) { int[] sources = element.GetSources(); Debug.Assert(sources.Length == 2); Point connectionSourcePoint = element.GetConnectionSourcePoint(sources[0]); Point point4 = element.GetConnectionSourcePoint(sources[1]); if (sources.Length != 2) { return(trainPoint); } double introduced15 = Math.Pow(connectionSourcePoint.get_X() - point4.get_X(), 2.0); double num2 = Math.Sqrt(introduced15 + Math.Pow(connectionSourcePoint.get_Y() - point4.get_Y(), 2.0)); double num3 = (num2 * t.HeadOffset) / ((element.Length == 0) ? ((double)1) : ((double)element.Length)); double num4 = 1.0; double num5 = 0.0; if (!(connectionSourcePoint.get_Y() == point4.get_Y())) { num4 = Math.Abs((double)(point4.get_X() - connectionSourcePoint.get_X())) / num2; num5 = Math.Abs((double)(point4.get_Y() - connectionSourcePoint.get_Y())) / num2; } double num6 = num3 * num4; double num7 = num3 * num5; if (t.HeadElementArrivedSource == sources[0]) { if (connectionSourcePoint.get_X() <= point4.get_X()) { connectionSourcePoint.set_X(connectionSourcePoint.get_X() + num6); } else { connectionSourcePoint.set_X(connectionSourcePoint.get_X() - num6); } if (connectionSourcePoint.get_Y() <= point4.get_Y()) { connectionSourcePoint.set_Y(connectionSourcePoint.get_Y() + num7); } else { connectionSourcePoint.set_Y(connectionSourcePoint.get_Y() - num7); } point2 = connectionSourcePoint; } else { if (point4.get_X() <= connectionSourcePoint.get_X()) { point4.set_X(point4.get_X() + num6); } else { point4.set_X(point4.get_X() - num6); } if (point4.get_Y() <= connectionSourcePoint.get_Y()) { point4.set_Y(point4.get_Y() + num7); } else { point4.set_Y(point4.get_Y() - num7); } point2 = point4; } trainPoint = point2; if (index != -1) { if (connectionSourcePoint.get_Y() == point4.get_Y()) { trainPoint.set_Y(trainPoint.get_Y() - 6.0); trainPoint.set_Y(trainPoint.get_Y() + (13 * index)); } else { trainPoint.set_X(trainPoint.get_X() - 6.0); trainPoint.set_X(trainPoint.get_X() + (13 * index)); } } } return(trainPoint); }
private Point PointData2Point(PointData pd1, Rectangle rc) { Point point = new Point(); point.set_X(this.Position2PointX(pd1.Position, rc)); point.set_Y(this.DateTime2PointY(pd1.DateTime, rc)); return point; }
private void DrawCurve(TrainCurveData c, Rectangle rc, List<Line> rectangles, int startIndex) { if ((c != null) && (c.Points != null)) { PointData data; PointData data2; int num = 0; int num2 = -1; Line item = new Line(); Color color = Colors.get_Black(); double widthRequires = 0.0; if (c.Points.Count > 0) { widthRequires = this.DrawCurveTitle(rc, c.Points[0], c.Points[0], c.Caption, false); } for (int i = startIndex; i < (c.Points.Count - 1); i++) { data = c.Points[i]; data2 = c.Points[i + 1]; if (!c.Regular) { TimeSpan span = (TimeSpan) (data.DateTime - data2.DateTime); if (this.IsGap((double) (data.Position - data2.Position), span.TotalMinutes)) { c.CaptionHasDrawn = false; c.CaptionStartIndex = i + 1; continue; } } color = _SilverlightHelper.ConvertToColor(data2.Color); Line line2 = new Line(); line2.set_X1(this.Position2PointX(data.Position, rc)); line2.set_Y1(this.DateTime2PointY(data.DateTime, rc)); line2.set_X2(this.Position2PointX(data2.Position, rc)); line2.set_Y2(this.DateTime2PointY(data2.DateTime, rc)); line2.set_Width(1251.0); line2.set_Height(this.CanvasRoot_ActualHeight); line2.set_StrokeThickness(2.0); line2.set_Stroke(new SolidColorBrush(color)); this.CanvasRoot.get_Children().Add(line2); if (c.Regular && (c.Caption.Length > 0)) { if (!this.HasInsersection(rectangles, line2)) { int num5 = data2.Position - data.Position; if (num5 > num) { num = num5; num2 = i; item = this.LineClone(line2); } } } else if (!c.CaptionHasDrawn) { int num6; int num7; int num8; bool flag; if (this.GetGoodPointsForTitle(c, c.CaptionStartIndex, rc, widthRequires, out num6, out num7, out num8, out flag)) { c.CaptionHasDrawn = true; this.DrawCurveTitle(rc, c.Points[num6], c.Points[num7], c.Caption, true); } else if (flag) { c.CaptionStartIndex = num8; } } } if ((c.Regular && (c.Caption.Length > 0)) && (num2 != -1)) { data = c.Points[num2]; data2 = c.Points[num2 + 1]; color = _SilverlightHelper.ConvertToColor(data2.Color); if (rectangles != null) { rectangles.Add(item); } Point point = new Point(); Point point2 = new Point(); point.set_X(this.Position2PointX(data.Position, rc)); point.set_Y(this.DateTime2PointY(data.DateTime, rc)); point2.set_X(this.Position2PointX(data2.Position, rc)); point2.set_Y(this.DateTime2PointY(data2.DateTime, rc)); double rotationAngle = _SilverlightHelper.GetRotationAngle(point, point2); double num10 = point2.get_X() - point.get_X(); TextBlock block = new TextBlock(); block.SetValue(Canvas.TopProperty, point.get_Y() + 5.0); block.SetValue(Canvas.LeftProperty, point.get_X()); block.SetValue(FrameworkElement.WidthProperty, num10); block.SetValue(FrameworkElement.HeightProperty, 50.0); block.set_Width(num10); block.set_Text(c.Caption); block.set_FontSize(17.0); block.set_FontFamily(new FontFamily("Arial")); block.set_Foreground(new SolidColorBrush(color)); block.set_FontStyle(FontStyles.get_Normal()); block.set_FontWeight(FontWeights.get_Bold()); RotateTransform transform = new RotateTransform(); transform.set_Angle(-rotationAngle); block.set_RenderTransform(transform); block.set_TextAlignment(0); this.CanvasRoot.get_Children().Add(block); } } }