구현 나는 Qt는 4.x의에서 QGraphicsView
, 나는 이런 식으로 뭔가를가는 작업을 구현 한을 줌 슬라이더를 통합 할 필요가있는 다음 그래서 내 문제 t 현장을 곱 개의 부동 소수점 값을 얻어 QGraphicsView
의 scale()
함수로 줌 상태를 나타내는 m을 N의 값을 갖는 슬라이더를 정합 따른된다줌 슬라이더를 QGraphicsView
void CustomView::setZoomLevel(int level)
{
if(zoomLevel - level < -1){
setZoomLevel(level - 1);
}else if(level - zoomLevel < -1){
setZoomLevel(level + 1);
}
if(level < zoomLevel){
scale(1 - (scaleFactor * (zoomLevel - level)), 1 - (scaleFactor * (zoomLevel - level)));
}else if (level > zoomLevel){
scale(1 + (scaleFactor * (level - zoomLevel)), 1 + (scaleFactor * (level - zoomLevel)));
}
zoomLevel = level;
}
새로운 크기를 얻으십시오.
그래서 내가 가지고있는 문제는 1 * .9 * 1.1을 취하면 여전히 올바른 수식이 아니기 때문에 1이 아니라 .99가 나오지 않는다는 것입니다. 따라서 내 최대 줌은 시간이 지남에 따라 점점 작아집니다.
재귀 호출은 슬라이더가 빠른 슬라이드에서 값을 건너 뛰기 때문에 "오류"가 증가하여 재사용 호출이 때로는 붕대를 부드럽게하기 위해 부드럽게 처리했기 때문입니다.
줌을 올바르게 처리하는 방법이 있습니까?
정말 고마워요. 이 정보는 scale() 아래의 설명서에서 실제로 언급해야합니다. –