Vectors3.cs
上传用户:lxycoco
上传日期:2022-07-21
资源大小:38457k
文件大小:2k
源码类别:

C#编程

开发平台:

Others

  1. using System; 
  2. namespace Wrox.ProCSharp.OOCSharp
  3. {
  4.    struct Vector
  5.    {
  6.       public double x, y, z;
  7.       public Vector(double x, double y, double z)
  8.       {
  9.          this.x = x;
  10.          this.y = y;
  11.          this.z = z;
  12.       }
  13.       public Vector(Vector rhs)
  14.       {
  15.          x = rhs.x;
  16.          y = rhs.y;
  17.          z = rhs.z;
  18.       }
  19.       public override string ToString()
  20.       {
  21.          return "( " + x + " , " + y + " , " + z + " )"; 
  22.       }
  23.       public static Vector operator + (Vector lhs, Vector rhs)
  24.       {
  25.          Vector result = new Vector(lhs);
  26.          result.x += rhs.x;
  27.          result.y += rhs.y;
  28.          result.z += rhs.z;
  29.          return result;
  30.       }
  31.       public static Vector operator * (double lhs, Vector rhs)
  32.       {
  33.          return new Vector(lhs*rhs.x, lhs*rhs.y, lhs*rhs.z);
  34.       }
  35.       public static Vector operator * (Vector lhs, double rhs)
  36.       {
  37.          return rhs*lhs;
  38.       }
  39.       public static double operator * (Vector lhs, Vector rhs)
  40.       {
  41.          return lhs.x*rhs.x + lhs.y+rhs.y + lhs.z*rhs.z;
  42.       }
  43.       public static bool operator == (Vector lhs, Vector rhs)  
  44.       {
  45.          if (lhs.x == rhs.x && lhs.y == rhs.y && lhs.z == rhs.z)
  46.             return true;
  47.          else
  48.             return false;
  49.       }
  50.       public static bool operator != (Vector lhs, Vector rhs)
  51.       {
  52.       return ! (lhs == rhs);
  53.       }
  54.       static void Main()
  55.       {
  56.          // stuff to demonstrate arithmetic operations
  57.          Vector vect1, vect2, vect3;
  58.          vect1 = new Vector(3.0, 3.0, -10.0);
  59.          vect2 = new Vector(3.0, 3.0, -10.0);
  60.          vect3 = new Vector(2.0, 3.0, 6.0);
  61.          Console.WriteLine("vect1==vect2 returns  " + (vect1==vect2));
  62.          Console.WriteLine("vect1==vect3 returns  " + (vect1==vect3));
  63.          Console.WriteLine("vect2==vect3 returns  " + (vect2==vect3));
  64.          Console.WriteLine();
  65.          Console.WriteLine("vect1!=vect2 returns  " + (vect1!=vect2));
  66.          Console.WriteLine("vect1!=vect3 returns  " + (vect1!=vect3));
  67.          Console.WriteLine("vect2!=vect3 returns  " + (vect2!=vect3));
  68.       }
  69.    }
  70. }