|
매번 새로 점에 대한 배열을 다시 만들어서 복사하고 기존것은 제거하는거 같네요
점이 늘어 날수록 속도는 무지하게 오래 걸리겠네요. 10개는 별 차이 없겠지만서도...
링크드리스트를 사용해 보세요.
반짝반짝 님이 쓰신 글 :
: 점좌표에 대한데이타인데요
: 한개가 추가될때마다 가변적으로 사이즈 제할당 해서 메모리 복사해서 넘기는 건데
: 한번 구현해 봤거든요 ;;
: 맞는지 한번만 봐주세요 ;
:
: void CGrayEdge::TEdRs::OnAddPnt(TPoint Pnt)
: {
: if (RsPntCnt == 0) {
: pRsPnt = new TPoint[++RsPntCnt] ;
: pRsPnt[0] = Pnt ;
: return ;
: }
:
: TPoint * pTemp ;
: TPoint * pTrns ;
: pTemp = new TPoint[++RsPntCnt];
:
: for(register int i = 0 ; i < RsPntCnt-1 ; i++) {
: pTemp[i] = pRsPnt[i] ;
: }
:
: pTemp[RsPntCnt-1] = Pnt ;
:
: pTrns = pTemp ;
: pTemp = pRsPnt ;
: pRsPnt = pTrns ;
:
: delete[] pTemp ;
: pTemp = NULL ;
: pTrns = NULL ;
: }
|