mikhailemv

Untitled

Dec 6th, 2021
699
314 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3. namespace GeometryTasks
  4. {
  5.     public class Segment
  6.     {
  7.         public Vector Begin;
  8.         public Vector End;
  9.     }
  10.  
  11.     public class Vector
  12.     {
  13.         public double X;
  14.         public double Y;
  15.     }
  16.  
  17.     public class Geometry
  18.     {
  19.         public static double GetLength(Segment segment)
  20.         {
  21.             return Math.Sqrt((segment.End.X - segment.Begin.X) * (segment.End.X - segment.Begin.X) +
  22.                 (segment.End.Y - segment.Begin.Y) * (segment.End.Y - segment.Begin.Y));
  23.         }
  24.  
  25.         public static double GetLength(Vector point)
  26.         {
  27.             return Math.Sqrt(point.X * point.X +
  28.                 point.Y * point.Y);
  29.         }
  30.  
  31.         public static Vector Add(Vector firstVector, Vector secondVector)
  32.         {
  33.             return new Vector()
  34.             {
  35.                 X = firstVector.X + secondVector.X,
  36.                 Y = firstVector.Y + secondVector.Y
  37.             };
  38.         }
  39.  
  40.         public static bool IsVectorInSegment(Vector point, Segment segment)
  41.         {
  42.             var firstPoint = new Vector()
  43.             {
  44.                 X = segment.Begin.X - point.X,
  45.                 Y = segment.Begin.Y - point.Y
  46.             };
  47.  
  48.             var secondPoint = new Vector()
  49.             {
  50.                 X = segment.End.X - point.X,
  51.                 Y = segment.End.Y - point.Y
  52.             };
  53.  
  54.             return Math.Abs(GetLength(firstPoint) + GetLength(secondPoint) - GetLength(segment)) < 1e-9;
  55.         }
  56.     }
  57. }
RAW Paste Data