 |
Jypeli
9
The simple game programming library
|
Siirry tämän tiedoston dokumentaatioon.
32 using System.Globalization;
33 using System.Collections.Generic;
109 result.
X = length * Math.Cos( angle );
110 result.
Y = length * Math.Sin( angle );
149 return left.
Y * right.
Y + left.
X * right.
X;
212 (
X * matrix.M11 ) + (
Y * matrix.M21 ) + matrix.M41,
213 (
X * matrix.M12 ) + (
Y * matrix.M22 ) + matrix.M42
234 double minMagnitude = vectors[0].
Magnitude;
236 for (
int i = 1; i < vectors.Length; i++ )
238 double m = vectors[i].Magnitude;
239 if ( m < minMagnitude )
246 return vectors[minIndex];
257 double maxMagnitude = vectors[0].
Magnitude;
259 for (
int i = 1; i < vectors.Length; i++ )
261 double m = vectors[i].Magnitude;
262 if ( m > maxMagnitude )
269 return vectors[maxIndex];
283 foreach ( var v
in vectors )
303 foreach ( var v
in vectors )
309 return vectors.Length > 0 ?
new Vector( sumX, sumY ) / vectors.Length :
Vector.
Zero;
312 [Save]
public double X;
313 [Save]
public double Y;
328 get {
return X *
X +
Y *
Y; }
349 double a = Math.Atan2(
Y,
X );
362 return ToString( NumberFormatInfo.InvariantInfo );
365 public string ToString( IFormatProvider formatProvider )
367 string x =
X.ToString( formatProvider );
368 string y =
Y.ToString( formatProvider );
369 return string.Format(
"({0},{1})", x, y );
374 return Parse( vectorStr, NumberFormatInfo.InvariantInfo );
377 public static Vector Parse(
string vectorStr, IFormatProvider formatProvider )
379 string[] splitStr = vectorStr.Split(
'(',
',',
')' );
381 if ( splitStr.Length != 4 )
382 throw new FormatException(
"Not a vector string: " + vectorStr );
384 double x =
double.Parse( splitStr[1], formatProvider );
385 double y =
double.Parse( splitStr[2], formatProvider );
387 return new Vector( x, y );
393 result.
X = left.
X + right.
X;
394 result.
Y = left.
Y + right.
Y;
401 result.
X = left.
X - right.
X;
402 result.
Y = left.
Y - right.
Y;
409 result.
X = source.
X * scalar;
410 result.
Y = source.
Y * scalar;
416 return source * scalar;
424 result.
X = source.
X / scalar;
425 result.
Y = source.
Y / scalar;
432 result.
X = -source.
X;
433 result.
Y = -source.
Y;
442 public override bool Equals(
object obj )
471 return ( Math.Abs(
this.X - x ) <
float.Epsilon ) && ( Math.Abs(
this.Y - y ) <
float.Epsilon );
473 return ( Math.Abs(
this.X - x ) <
double.Epsilon ) && ( Math.Abs(
this.Y - y ) <
double.Epsilon );
479 #if WINDOWS_PHONE || ANDROID
481 return ( Math.Abs( left.
X - right.
X ) <
float.Epsilon ) && ( Math.Abs( left.
Y - right.
Y ) <
float.Epsilon );
483 return ( Math.Abs( left.
X - right.
X ) <
double.Epsilon ) && ( Math.Abs( left.
Y - right.
Y ) <
double.Epsilon );
489 return !( left == right );
504 return new Vector( v.X, v.Y );
static Vector Min(params Vector[] vectors)
Palauttaa lyhimmän vektorin.
static Scalar Sqrt(Scalar d)
Vector LeftNormal
Vasen normaali.
Microsoft.Xna.Framework.Matrix Matrix
override bool Equals(object obj)
override int GetHashCode()
static readonly Vector One
Yksikkövektori.
static readonly Vector UnitY
Pystysuuntainen yksikkövektori (pituus 1, suunta ylös).
static readonly Vector Zero
Nollavektori.
static Vector operator-(Vector left, Vector right)
static double DotProduct(Vector left, Vector right)
Pistetulo.
static readonly Vector Diagonal
Diagonaalivektori (1,1)
double Distance(Vector2D vector)
static readonly Vector UnitX
Vaakasuuntainen yksikkövektori (pituus 1, suunta oikealle).
Vector RightNormal
Oikea normaali.
static Vector Average(IEnumerable< Vector > vectors)
Palauttaa kahden tai useamman vektorin keskiarvon.
static Vector Max(params Vector[] vectors)
Palauttaa pisimmän vektorin.
Vector(double X, double Y)
Luo uuden vektorin komponenteista.
double ScalarProjection(Vector unitVector)
double Radians
Palauttaa tai asettaa kulman radiaaneina.
string ToString(IFormatProvider formatProvider)
static Vector operator*(Vector source, double scalar)
static Vector ComponentProduct(Vector a, Vector b)
Kertoo kaksi vektoria komponenteittain.
static double CrossProduct(Vector left, Vector right)
Ristitulo. Palauttaa kohtisuoraan vektoreita vastaan olevan uuden vektorin pituuden....
static Vector FromLengthAndAngle(double length, Angle angle)
Luo vektorin pituuden ja kulman perusteella.
Scalar X
This is the X value. (Usually represents a horizontal position or direction.)
Vector Transform(Matrix matrix)
Kertoo vektorin matriisilla.
Angle Angle
Kulma radiaaneina.
static Angle FromRadians(double radian)
Luo kulman annettujen radiaanien mukaan.
static Vector FromAngle(Angle angle)
Luo vektorin kulman perusteella yksikköpituudella.
static Vector operator+(Vector left, Vector right)
Microsoft.Xna.Framework.Matrix Matrix
static double Distance(Vector p1, Vector p2)
Etäisyys kahden pisteen välillä.
Vector Transpose()
Palauttaa uuden vektorin, jossa x ja y on vaihdettu keskenään.
static bool operator!=(Vector left, Vector right)
double MagnitudeSquared
Vektorin pituuden neliö.
static Vector FromLengthAndAngle(double length, double angle)
Luo vektorin pituuden ja kulman perusteella.
double Magnitude
Vektorin pituus.
static Vector Parse(string vectorStr, IFormatProvider formatProvider)
static Vector operator/(Vector source, double scalar)
static bool operator==(Vector left, Vector right)
static int GetHashCode(params object[] objects)
Palauttaa hajautuskoodin usean olion kokoelmalle.
A Vector with 4 dimensions.
A Vector with 3 dimensions.
This is the Vector Class.
Scalar Y
This is the Y value. (Usually represents a vertical position or direction.)
override string ToString()
Vektori merkkijonona muodossa (x,y)
Vector Project(Vector to)
Laskee ja palauttaa tämän pisteen etäisyyden toiseen pisteeseen.
Vector Normalize()
Palauttaa uuden vektorin, jonka suunta pysyy samana, mutta pituudeksi tulee 1.0.
Apuluokka kaikille olioille
static Vector Average(params Vector[] vectors)
Palauttaa kahden tai useamman vektorin keskiarvon.
static Vector Parse(string vectorStr)
Suuntakulma (rajoitettu -180 ja 180 asteen välille) asteina ja radiaaneina. Tietoja kulmasta: http://...