현재 사용중인 프로그램에 AutoCAD 파일을 이미지로 변환하고 정보를 불러오는 기능을 개발하고 있습니다.
이미지 변환은 AutoCAD Plugin으로 PDF로 출력한 뒤 이미지로 변환하였습니다.
그리고 AutoCAD에서 Line, Polyline, Text, BlockReference등 AutoCAD의 정보들도 XML 파일로 출력하였습니다.
이미지의 단위와 AutoCAD의 단위가 다르고 더욱이 Y축의 방향은 서로 반대입니다.
이미지 좌표 시스템 |
CAD 좌표 시스템 |
따라서 출력한 AutoCAD 정보들을 이미지와 일치시키는 작업이 필요합니다.
CAD의 BoundingBox와 변환 후 이미지의 BoundingBox를 생각해봅시다.
(여기서 BoundingBox는 $(x,y,width,height)$로 정의됩니다.)
- CAD BoundingBox를 $(0,0)$으로 이동합니다.
위 절차를 하나의 식으로 표현하면
$$f(x,y)=\left\{ \begin{aligned} \begin{array}\ \bigg(x - bbox(cad)_x\bigg)*scale_x + bbox(image)_x \\ \bigg(\textcolor{red}{-y}-bbox(cad)_y\bigg)*scale_y + \bigg(bbox(image)_y + bbox(image)_{height}\bigg) \end{array} \end{aligned} \right.\\,\text{(x,y는 CAD 좌표)}$$ 와 같이 표현됩니다. y의 부호에 주의하세요.
함수 $f(x,y)$를 이용하여 CAD 좌표를 이미지 좌표로 변환할 수 있습니다.
댓글
댓글 쓰기