기본 콘텐츠로 건너뛰기

라벨이 Donut인 게시물 표시

Create DONUT like AutoCAD's donut

AutoCAD에서의 Donut과 유사하게 MSTN J에서 Donut을 만드는 함수입니다. 함수 분석은 그리 어렵지 않구요. 간단히 설명하자면 두개의 Ellipse를 생성한 다음에 큰 Ellipse에서 작은 Ellipse을 뺀 나머지 부분을 생성한 후 저장하면 됩니다. //! get difference pattern between two patterns mdlElmdscr_differenceShapes(&patternEdPP, NULL, OutpatternEdPP, InpatternEdPP , 0); 자 그럼 코드를 볼까요... /** @brief create donut @author HumKyung.Baek @date ????.??.?? @return boolean */ Private boolean Draw_Donut(floatfInsideDia, floatfOutsideDia, Dpoint3d *ptCenter, intnColor, intnLayer) { MSElementUnion newElement, newInElement, newOutElement; inti, stat; intnFillmode = 1; intnWeight, nStyle; MSElementDescr *OutpatternEdPP = NULL, *InpatternEdPP = NULL, *patternEdPP = NULL; doubleunitVal = tcb->uorpersub; ptCenter->x = ptCenter->x * unitVal; ptCenter->y = ptCenter->y * unitVal; ptCenter->z = ptCenter->z * unitVal; stat = mdlEllipse_create(&newOutElement, NULL, ptCenter, fOutsideDia*unitVal, fOutsideDia*unitVal, NULL, nFillmode); ...