Laden...

[Snippet] Berechnung von Punkten einer Geraden

Erstellt von egrath vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.631 Views
egrath Themenstarter:in
871 Beiträge seit 2005
vor 16 Jahren
[Snippet] Berechnung von Punkten einer Geraden

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; }
		}      
	}
}