Hallo,
untenstehend ein kleines Snippet zur Berechnung von Koordinaten welche auf einer Geraden zwischen zwei gegebenen Punkten liegen. Vielleicht kanns ja mal wer brauchen.
Grüsse,
Egon
using System;
namespace egrath.tools.MathHelper
{
public class StraightLine
{
private double m_Distance = 0;
private PointD m_Point1;
private PointD m_Point2;
public StraightLine( PointD p1, PointD p2 )
{
m_Distance = GetDistanceAbs( p1, p2 );
m_Point1 = p1;
m_Point2 = p2;
}
public double Length
{
get { return m_Distance; }
}
private double GetDistanceAbs( PointD p1, PointD p2 )
{
m_Distance = Math.Sqrt(
Math.Pow( Math.Abs( p2.X - p1.X ), 2 ) +
Math.Pow( Math.Abs( p2.Y - p1.Y ), 2 ));
return m_Distance;
}
public PointD GetStepPoint( double step )
{
PointD bv = new PointD(( m_Point2.X - m_Point1.X ) / m_Distance, ( m_Point2.Y - m_Point1.Y ) / m_Distance );
PointD pnt = new PointD(
( m_Point1.X + ( step * bv.X )),
( m_Point1.Y + ( step * bv.Y )));
return pnt;
}
}
public struct PointD
{
private double m_X;
private double m_Y;
public PointD( double x, double y )
{
X = x;
Y = y;
}
public double X
{
get { return m_X; }
set { m_X = value; }
}
public double Y
{
get { return m_Y; }
set { m_Y = value; }
}
}
}
egrath's Blog: http://egonrath.eg.funpic.de/wordpress