Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.11 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace GeometryTasks
  8. {
  9.     public class Vector
  10.     {
  11.         public double X;
  12.         public double Y;
  13.         public double GetLength()
  14.         {
  15.             return Geometry.GetLength(this);
  16.         }
  17.         public Vector Add(Vector vector)
  18.         {
  19.             return Geometry.Add(this, vector);
  20.         }
  21.         public bool Belongs(Segment segment)
  22.         {
  23.             return Geometry.IsVectorInSegment(this, segment);
  24.         }
  25.     }
  26.     public static class Geometry
  27.     {
  28.         public static double GetLenght(Vector vector)
  29.         {
  30.             return Math.Sqrt(vector.X * vector.X + vector.Y * vector.Y);
  31.         }
  32.         public static Vector Add(Vector vector1, Vector vector2)
  33.         {
  34.             return new Vector { X = vector1.X + vector2.X, Y = vector1.Y + vector2.Y };
  35.         }
  36. public static double GetLength(Segment segment)
  37.         {
  38.             return GetLength(Add(segment.Begin, new Vector { X = -segment.End.X, Y = -segment.End.Y }));
  39.         }
  40.         public static bool IsVectorInSegment(Vector vector, Segment segment)
  41.         {
  42.             return GetLength(Add(segment.Begin, new Vector { X = -segment.End.X, Y = -segment.End.Y }
  43.         }
  44.         public static bool IsVectorInSegment(Vector vector, Segment segment)
  45.         {
  46.             var lengthFromBeginToA = Math.Sqrt(Math.Pow(vector.X - segment.Begin.X, 2) +
  47.             Math.Pow(vector.Y - segment.Begin.Y, 2));
  48.             var lengthFromAtoEnd = Math.Sqrt(Math.Pow(segment.End.X - vector.X, 2) +
  49.             Math.Pow(segment.End.Y - vector.Y, 2));
  50.             return (lengthFromBeginToA + lengthFromAtoEnd == GetLength(segment));
  51.         }
  52.     }
  53.     public class Segment
  54.     {
  55.         public Vector Begin;
  56.         public Vector End;
  57.         public double GetLength(Segment segment)
  58.         {
  59.             return Geometry.GetLength(segment);
  60.         }
  61.         public bool Contains(Vector vector)
  62.         {
  63.             return Geometry.IsVectorInSegment(vector, this);
  64.         }
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement