메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

수학도 기하학도 허접한 제가 짠 거라서 허접하지만
넓은 아량으로 봐 주십시오.

struct Point
{
     double x;
     double y;
};

bool LineIn(Point p1, Point p2, Point p3)
{
     double top, bottom;

 //위 아래 범위 결정
     if(p1.y < p2.y)
     {
          top = p1.y;
          bottom = p2.y;
     }
     else
     {
          top = p2.y;
          bottom = p1.y;
     }

     //변의 y범위에 속해있지 않으면 절대 교차하지 않음
     if(p3.y < top || p3.y >= bottom)return false;

     //변 안의 p3와 같은 y좌표에 있는 점 구하기
     double new_x;
     if(p1.y == p2.y) //수직선
     {
          new_x = p1.x;
     }
     else //아닌 경우 x의 변화량을 구함
     {
          double gradient = (p2.x - p1.x) / (p2.y - p1.y);
          new_x = (p3.y-p1.y)*gradient+p1.x;
     }

     //그 점이 비교하는 점보다 왼쪽에 있으면 교차하지 않음, 오른쪽이면 교차
     if(new_x < p3.x)return false;
          else return true;
}

bool PointIn(Point* polygon, int point_num, Point point)
{
     int collusion=0;

     //각 변을 점과 비교(점에서 오른쪽으로 그은 수평선과 변이 교차하는지 검사)
     for(int i=0; i<point_num; ++i)
     {
          int j = i+1;
          if(j>=point_num)j=0;
          if(LineIn(polygon[i], polygon[j], point))++collusion;
     }

     //교차하는 수가 짝수이면 밖, 홀수이면 안
     if((collusion%2)==0)return false;
          else return true;
}

조회 수 :
5358
등록일 :
2008.04.14
02:21:07 (*.193.78.73)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=189730
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
25 love.graphics.print 한국어 출력 노루발 2013-09-17 431
24 김프로 이미지 맵 만들기 노루발 2015-11-11 393
23 Love2d 게임 중간에 광고 표시 [1] 노루발 2015-11-12 377
22 [Lua] Split 노루발 2013-09-17 361
21 멘탈붕괴의 절정을 부르는 파일입출력 노루발 2013-09-17 273
20 love.update(dt) 에서 버벅이는 현상. 노루발 2013-09-17 256
19 Love2d로 만든 로그라이크 예제 노루발 2020-11-30 253
18 Love2d DPI 이슈 해결 [3] 노루발 2019-06-29 97
17 Oracle cloud에 Nginx/MariaDB 설치하기 노루발 2020-12-06 93
16 Windows To Go와 R-Studio를 이용한 손실된 데이터 복구하기 노루발 2020-01-30 89
15 특정좌표를 기준으로 zoom in/zoom out하기 노루발 2020-11-11 58
14 Love2d 게임 안드로이드로 패키징하기 노루발 2021-01-11 48
13 Love2d 이미지 하얗게 그리기 노루발 2020-11-23 42
12 이쁜 눈나가 유니티 개발 알려주는 재생목록 노루발 2020-11-12 37
11 Lua 인수로 nil값이 들어왔을 경우 처리하기 노루발 2020-11-06 36
10 루아 스타일 가이드 노루발 2020-11-19 34
9 Lua 테이블 안에 함수 저장하기 노루발 2020-11-06 28
8 Lua 클래스 만들고 활용하기 노루발 2020-11-06 24
7 illegal character 방지 [3] 노루발 2023-07-17 22
6 Lua-love2d TCP 통신 [1] 노루발 2023-07-14 22