[DevTip] Android - android.graphics.Matrix

Path에 대한 transform 예
mTransformMatrix.reset();
            if ((mCurMax - mCurMin) > 0) {
                    mTransformMatrix.postScale(1, -(mCurScrHeight >> 1)/(mCurMax - mCurMin));
            } else {
                    // Consider sample data uses 16-bit integer
                    mTransformMatrix.postScale(1, -(mCurScrHeight >> 1)/((1 << 15) - 1));
            }
            mTransformMatrix.postTranslate(0, mCurScrHeight >> 1);
            mPathOrg.transform(mTransformMatrix, mPath);

Matrix의 변환 설정을 위한 함수에 set/pre/post 전치사가 붙는데,
Pre/post는 행렬 계산식의 배치(앞, 뒤)와 관계가 있고,
Set은 이전 작업을 무시하고 해당 변환만 적용한다.
즉, 위와 같은 경우, Scale과 Translate를 순차적으로 적용하는 꼴.

만약, setScale()과 setTranslate()를 사용했다면, 후자인 setTranslate()만 적용된다는 것에 주의!


댓글

이 블로그의 인기 게시물

보험개발원에서 공개한 차량 등급

환경개선부담금

Electropermanent Magnets: Programmable Magnets with Zero Static Power Consumption Enable Smallest Modular Robots Yet