2014-04-14 5 views
3

AffineTransform.getScaleX()과 가족을 합법적으로 사용하는 사례가 있습니까?AffineTransform getScaleX()를 언제 사용 하시겠습니까?

변환 행렬의 m00 또는 왼쪽 위 모서리 요소를 반환하며 행렬의 크기 조정을 결정하는 데는 거의 쓸모가 없습니다. 예를 들어 사소한 90도 회전 행렬을 생각해 보면 getScaleX()getScaleY()은 모두 0을 반환합니다.

스케일링을 반환하지 않는다는 사실에 익숙하지 않은 코드 판독기를 혼란스럽게하므로 결코이 호출을 사용하지 않습니다. 의미있는 방식으로, getMatrix(m)에 훨씬 더 좋고 변환을 사용하는 코드를 읽을 가능성이있는 사람들은 행렬 수학에 익숙하기 때문에 m [0]에 액세스하십시오.

이 경우에는 유스 케이스가 있어야하지만 이해가되지 않습니다.

답변

1

쓴대로 x 배율 인수의 개념은 일반적으로 의미가 없습니다. 이는 매트릭스를 스케일링하는 특별한 경우에만 관련이 있습니다. i.E. getTypeTYPE_GENERAL_SCALE 또는 TYPE_UNIFORM_SCALE을 반환합니다. (번역도 추가 될 수 있습니다.) 다른 경우에는 getScaleX이 문서가 말하는 것을 수행한다는 의미에서 "정확"하지만 그 이름과 관련하여 오해의 소지가 없습니다. 유사한 논리는 getShearX에 적용되며, 이것은 전단 매트릭스의 맥락에서만 의미를 갖습니다. getTranslateX은 약간 다릅니다. 행렬이 의미하는 다른 모든 변환과 관계없이 원점이 변환되는 곳이라고 주장 할 수 있기 때문입니다.

+0

근본적으로 그것이 내가 낚시하고 있었던 대답이지만, 누군가가 알고 있거나 더 나은 것을 생각해 내면 내가 받아들이 기 전에 기다릴 것입니다. – nyholku