2008. 10. 3. 21:36

사다리꼴 문제점 해결1 - 2부

우선 말하고자 할 것이 있다..

출력하여 살펴본 결과..시작점이랑 최고up점이랑 같을 경우..즉..겹침의 상황에서는

꼭지점을 알아서 찾아 내었다...

위에 따로 소스가 있으니까..그게 실행되어 찾더라..^^

근데..만약 시작점이 up보다 작은 y축에 있을 경우..즉!!

겹침현상이 아닐경우..(앞에 1부 결과 사진 잘볼 것)

발생하는 문제점을 해결하기 위한 소스임을 밝혀둔다..

그럼./.

 

그 사다리꼴을 해결하기 위한 소스이다.

if(old_y_up_x<xx_half || what==4 || what==2){ 

 

    if(old_x_left_y == old_y_up){
               plusORminus=TRUE;
               outlet1=sadarigol4(old_x_right, old_x_right_y);
               old_y_up_x=Returrns(outlet1);
               old_y_up=Returrnsy(outlet1);

    }else if(old_x_left != old_y_up_x){

 

              처음점 찾는 소스랑 나머지 사다리꼴 찾는 소스이다..

 

    }

 

 

 

 

무지 간단하게 구현되었다..

앞에서 구현되었던 똑같은 경우

if(old_y_up_x<xx_half || what==4 || what==2){ 

일 경우에는 모두 처음점을 이용하여 꼭지점을 찾아야 했지만..

이 경우는 끝점을 찾아야 하므로..

처음점을 찾는 소스 바로 앞에다

if(old_x_left_y == old_y_up){
}를 구현했다..

이유는 성질을 잘 살펴보면 최고 왼쪽점의 y축값이랑

최고 위쪽점의 y축값이랑 같음을 찾을 수 있기 때문이다..

나머지 안의 소스는 앞에 겹침현상에서 쓴 소스랑 거의 같다..

 

그러나.

 한가지 짚을 것은..

 +3이나..-3을 이용하여 기울기함수를 쓸때..

 all_count의 0값보다..작은 곳에 꼭지점의 좌표가 저장되어있을 확률이 높기때문에..

 차라리 right값을 넘겨주어..

 거기서 부터..기울기함수를 호출하여 계산한 값을

 up값에 각각 넣어 버리면 간단해지기 때문에...그렇게 해따..

 그리고 다시 실행한 결과사진은

 

..

 

 

 

 

이다..