If you run the following code you get a result like the attached (the lines to not meet at the center). I fully realize that there is an error where I convert degrees to radians BUT that should not cause this behavior. The value of pCenter never changes and the sin and cos of ANY number is still in the range -1 to 1 so the resulting lines are definitely wrong.
Code: Select all
Point pCenter = new Point(150, 150);
Color pColor = Colors.Red;
double pLineLength = 130;
for (int i = 10; i < 360; i += 10)
{
double radians = i * 180.0 / Math.PI;
double sin = Math.Sin(radians);
double cos = Math.Cos(radians);
Point pPoint = new Point(((cos * pLineLength) + pCenter.X),
((sin * pLineLength) + pCenter.Y));
Windows.UI.Xaml.Shapes.Line line = new Windows.UI.Xaml.Shapes.Line();
line.Stroke = new Windows.UI.Xaml.Media.SolidColorBrush(pColor);
line.X1 = pCenter.X;
line.Y1 = pCenter.Y;
line.X2 = pPoint.X;
line.Y2 = pPoint.Y;
CompassCanvas.Children.Add(line);
}
Even if you fix the radians conversion so that the value if correct as follows.
Code: Select all
Point pCenter = new Point(150, 150);
Color pColor = Colors.Red;
double pLineLength = 130;
for (int i = 10; i < 360; i += 10)
{
double radians = i * Math.PI / 180.0;
double sin = Math.Sin(radians);
double cos = Math.Cos(radians);
Point pPoint = new Point(((cos * pLineLength) + pCenter.X),
((sin * pLineLength) + pCenter.Y));
Windows.UI.Xaml.Shapes.Line line = new Windows.UI.Xaml.Shapes.Line();
line.Stroke = new Windows.UI.Xaml.Media.SolidColorBrush(pColor);
line.X1 = pCenter.X;
line.Y1 = pCenter.Y;
line.X2 = pPoint.X;
line.Y2 = pPoint.Y;
CompassCanvas.Children.Add(line);
}
The resulting lines are STILL wrong but not as badly (which makes no sense at all to me)