728x90
반응형
728x170
■ Point 구조체를 사용해 선의 왼쪽 포인트 여부를 구하는 방법을 보여준다.
▶ 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
반응형
그리드형(광고전용)
'C# > WinForm' 카테고리의 다른 글
[C#/WINFORM] ElementHost 클래스 : WPF 복합 컨트롤 호스트하기 (0) | 2023.01.01 |
---|---|
[C#/WINFORM] ElementHost 클래스 : WPF 복합 컨트롤 사용하기 (0) | 2023.01.01 |
[C#/WINFORM] RNGCryptoServiceProvider 클래스 : GetBytes 메소드를 사용해 임시 패스워드 생성기 만들기 (0) | 2022.11.05 |
[C#/WINFORM/.NET6] 이미지 RTF 구하기 (0) | 2022.10.30 |
[C#/WINFORM/.NET6] 마우스 이벤트 발생시키기 (0) | 2022.10.22 |
[C#/WINFORM/.NET6] 별점(Star Rating) 그리기 (0) | 2022.10.14 |
[C#/WINFORM/.NET6] 비주얼 스튜디오 2022에서 단일 실행 파일 배포하기 (0) | 2022.10.10 |
[C#/WINFORM/.NET6] ISynchronizeInvoke 인터페이스 : InvokeRequired 코드 패턴 자동화하기 (0) | 2022.10.09 |
[C#/WINFORM/.NET6] MethodInvoker 대리자 : InvokeRequired 코드 패턴 자동화하기 (0) | 2022.10.09 |
[C#/WINFORM/.NET6] 화면 돋보기 사용하기 (0) | 2022.10.09 |
댓글을 달아 주세요