Segment.cpp
#include "Segment.h"
using namespace Robotics;
using namespace System;
using namespace System::Diagnostics;
/// [ Constructor ]
Segment::Segment( Point point1, Point point2 ) :
m_point1( point1 ),
m_point2( point2 )
{
}
/// 平行移動する
void Segment::ParallelTranslation( Point point )
{
m_point1 += point;
m_point2 += point;
}
/// 同一点か?
bool Segment::IsSamePoint()
{
return( m_point1 == m_point2 );
}
/// 傾き [ Property ]
double Segment::Slope::get()
{
if( m_point1.X == m_point2.X )
{
// 2点が Y軸の同一点上にある場合 傾きは限りなく大きな値とする
return Double::MaxValue;
/// @note
/// 本来ならば、Y軸に平行な直線には傾きは定義できないが、
/// 演算の都合上 このように処理している。
}
return( m_point2.Y - m_point1.Y )
/ ( m_point2.X - m_point1.X );
}
/// Y切片 [ Property ]
double Segment::YIntercept::get()
{
return( m_point1.Y - ( Slope * m_point1.X ) );
}