행렬에서 스케일 팩터를 추출한 다음 해당 구성 요소의 최대 값을 사용할 수 있습니다. SRT (Scale-Rotation-Translation) 행렬을 사용하면 다음과 같이 할 수 있습니다.
glm::mat4 m = ...;
// Extract col vectors of the matrix
glm::vec3 col1(m[0][0], m[0][1], m[0][2]);
glm::vec3 col2(m[1][0], m[1][1], m[1][2]);
glm::vec3 col3(m[2][0], m[2][1], m[2][2]);
//Extract the scaling factors
glm::vec3 scaling;
scaling.x = glm::length(col1);
scaling.y = glm::length(col2);
scaling.z = glm::length(col3);
float scaleFactor = MAX(scaling.x, MAX(scaling.y, scaling.z));
( http://wklej.org/id/950061/을 기반으로 -OpenGL에서 행렬이 곱해지는 순서대로 이름을 사용하기 때문에 이름이 decomposeTRS이고 decomposeSRT가 아닙니다).
이제 원래 구 반지름에 scaleFactor를 곱하면 경계 구가 생깁니다.