-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVector.cs
More file actions
94 lines (76 loc) · 2.18 KB
/
Vector.cs
File metadata and controls
94 lines (76 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
namespace PlanetAvoid
{
public class Vector
{
public double X = 0;
public double Y = 0;
private static Vector _empty = new Vector(0.0, 0.0);
public static Vector Empty
{
get { return _empty; }
}
public static Vector operator +(Vector V1, Vector V2)
{
return new Vector(V1.X + V2.X, V1.Y + V2.Y);
}
public static Vector operator -(Vector V1, Vector V2)
{
return new Vector(V1.X - V2.X, V1.Y - V2.Y);
}
public static Vector operator -(double m, Vector V2)
{
return new Vector(m - V2.X, m - V2.Y);
}
public static Vector operator *(double m, Vector V)
{
return new Vector(m * V.X, m * V.Y);
}
public static Vector operator *(Vector V, double m)
{
return new Vector(m * V.X, m * V.Y);
}
public static Vector operator +(Vector V, double m)
{
return new Vector(m + V.X, m + V.Y);
}
public static Vector operator +(double m ,Vector V)
{
return new Vector(m + V.X, m + V.Y);
}
public static Vector operator /(double m, Vector V)
{
return new Vector(m / V.X, m / V.Y);
}
public static Vector operator /(Vector V, double m)
{
return new Vector(V.X / m, V.Y / m);
}
public static Vector operator *(Vector V1, Vector V2)
{
return new Vector(V1.X * V2.X, V1.Y * V2.Y);
}
static public double dot(Vector V1, Vector V2)
{
return V1.X * V2.X + V1.Y * V2.Y;
}
public Vector(double x, double y)
{
this.X = x;
this.Y = y;
}
public Vector() { }
public PointF ToPoint()
{
return new PointF((float)this.X, (float)this.Y);
}
public PointF ToPoint(float dx, float dy)
{
return new PointF(dx + (float)this.X, dy + (float)this.Y);
}
}
}