메뉴 건너뛰기

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

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

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 조회 수
85 COgg 질문 [3] A.미스릴 2008-06-29 3710
84 srand에 관해서 [4] A.미스릴 2008-07-15 3868
83 [수정]이거왜이러는거죠;; [4] file 상상악수 2008-08-19 3254
82 흥크립트에 궁금한점 [4] 상상악수 2008-08-21 3835
81 그럼 질문으로... [1] 쿠로쇼우 2008-09-26 3243
80 또질문 [2] 쿠로쇼우 2008-09-29 2854
79 C++ 질문 [1] A.미스릴 2008-12-21 3818
78 C++ 질문 2 [3] A.미스릴 2008-12-22 3565
77 문D라이브로 만드는 더블드래곤.. 질문입니다 [4] 하와이안 2009-01-15 5550
76 흥크립트 질문. 글자에 관해서 [1] 에리 2009-03-21 3430
75 SRPG을 구현하게 되면 ... [3] 짜스터 2010-10-05 2708
74 데이터 축소에 대하여 [2] 짜스터 2010-10-13 2430
73 조금씩 게임 소스가 완성 되어 가는데요. [2] 짜스터 2010-11-16 2188
72 DirectX 창모드에서 화면 지워지는 문제 [7] file 똥똥배 2010-12-12 2790
71 2중 for문을 돌릴 때 [3] 똥똥배 2011-04-06 2539
70 lua와 C의 연동에서 상수(define이나 enum) 값처리 똥똥배 2011-05-25 3448
69 cocos2d-x 터치와 업데이트 활성화 시키기 똥똥배 2011-10-27 10656
68 TinyXML의 한계 [2] 똥똥배 2011-12-11 3756
67 cocos2d의 가비지 컬렉터 똥똥배 2012-02-07 1962
66 중력 처리할때 캐릭터가 낍니다. [2] ㅁㄴㅇㄹ 2012-02-12 1395