Vectors2.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.       static void Main()
  44.       {
  45.          // stuff to demonstrate arithmetic operations
  46.          Vector vect1, vect2, vect3;
  47.          vect1 = new Vector(1.0, 1.5, 2.0);
  48.          vect2 = new Vector(0.0, 0.0, -10.0);
  49.          vect3 = vect1 + vect2;
  50.          Console.WriteLine("vect1 = " + vect1);
  51.          Console.WriteLine("vect2 = " + vect2);
  52.          Console.WriteLine("vect3 = vect1 + vect2 = " + vect3);
  53.          Console.WriteLine("2*vect3 = " + 2*vect3);
  54.          vect3 += vect2;
  55.          Console.WriteLine("vect3+=vect2 gives " + vect3);
  56.          vect3 = vect1*2;
  57.          Console.WriteLine("Setting vect3=vect1*2 gives " + vect3);
  58.          double dot = vect1*vect3;
  59.          Console.WriteLine("vect1*vect3 = " + dot);
  60.       }
  61.    }
  62. }