Ejemplo n.º 1
0
 public double GetArea(Circle circle)
 {
     var callback = OperationContext.Current.GetCallbackChannel<ICircleAreaCalculatorCallback>();
     double area = Math.PI * circle.Radius * circle.Radius;
     callback.Result(area);
     return area;
 }
Ejemplo n.º 2
0
        private void CalculateArea(object sender, RoutedEventArgs e)
        {
            var circle = InputCircle.Text.Split(new char[] { ';' }).ToList();
            var radius = double.Parse(circle[1]);
            var xys = circle[0].Split(new char[] { ',' }).Select(x => double.Parse(x)).ToList();
            var center = new Multiverse.Services.Point(xys[0], xys[1]);
            Circle c = new Circle(radius, center);

            var area = areaCalculator.GetArea(c);
            Area.Text = String.Format("{0:0.00}", area);
        }
Ejemplo n.º 3
0
        public Circle CreateCircle(Point pt1, Point pt2, Point pt3)
        {
            double offset = Math.Pow(pt2.X, 2) + Math.Pow(pt2.Y, 2);
            double bc = (Math.Pow(pt1.X, 2) + Math.Pow(pt1.Y, 2) - offset) / 2.0;
            double cd = (offset - Math.Pow(pt3.X, 2) - Math.Pow(pt3.Y, 2)) / 2.0;
            double det = (pt1.X - pt2.X) * (pt2.Y - pt3.Y) - (pt2.X - pt3.X) * (pt1.Y - pt2.Y);

            double idet = 1 / det;

            double centerx = (bc * (pt2.Y - pt3.Y) - cd * (pt1.Y - pt2.Y)) * idet;
            double centery = (cd * (pt1.X - pt2.X) - bc * (pt2.X - pt3.X)) * idet;
            double radius = Math.Sqrt(Math.Pow(pt2.X - centerx, 2) + Math.Pow(pt2.Y - centery, 2));

            Point center = new Point(centerx, centery);
            Circle circle = new Circle(radius, center);
            return circle;
        }