첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

■ Point 구조체를 사용해 선의 왼쪽 포인트 여부를 구하는 방법을 보여준다.

TestProject.zip
0.00MB

▶ Program.cs

using System.Drawing;

namespace TestProject;

/// <summary>
/// 프로그램
/// </summary>
class Program
{
    //////////////////////////////////////////////////////////////////////////////////////////////////// Method
    ////////////////////////////////////////////////////////////////////////////////////////// Static
    //////////////////////////////////////////////////////////////////////////////// Private

    #region 왼쪽 포인트 여부 구하기 - IsLeftPoint(lineStartPoint, lineEndPoint, sourcePoint)

    /// <summary>
    /// 왼쪽 포인트 여부 구하기
    /// </summary>
    /// <param name="lineStartPoint">선 시작 포인트</param>
    /// <param name="lineEndPoint">선 종료 포인트</param>
    /// <param name="sourcePoint">소스 포인트</param>
    /// <returns>왼쪽 포인트 여부</returns>
    /// <remarks>데카르트 좌표계 기준이다.</remarks>
    private static bool IsLeftPoint(Point lineStartPoint, Point lineEndPoint, Point sourcePoint)
    {
         return
         (
            (lineEndPoint.X - lineStartPoint.X) * (sourcePoint.Y - lineStartPoint.Y) -
            (lineEndPoint.Y - lineStartPoint.Y) * (sourcePoint.X - lineStartPoint.X)
         ) > 0;
    }

    #endregion
    #region 프로그램 시작하기 - Main()

    /// <summary>
    /// 프로그램 시작하기
    /// </summary>
    private static void Main()
    {
        Point lineStartPoint = new Point(0  , 0  );
        Point lineEndPoint   = new Point(100, 100);

        Console.WriteLine(IsLeftPoint(lineStartPoint, lineEndPoint, new Point(0  , 100)));
        Console.WriteLine(IsLeftPoint(lineStartPoint, lineEndPoint, new Point(100, 0  )));
    }

    #endregion
}
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요