@@ -73,9 +73,9 @@ int main ()
73
73
camera .target = mouseWorldPos ;
74
74
75
75
// Zoom increment
76
- float scaleFactor = 1.0f + ( 0.25f * fabsf ( wheel ));
77
- if ( wheel < 0 ) scaleFactor = 1.0f / scaleFactor ;
78
- camera .zoom = Clamp (camera .zoom * scaleFactor , 0.125f , 64.0f );
76
+ // Uses log scaling to provide consistent zoom speed
77
+ float scale = 0.2f * wheel ;
78
+ camera .zoom = Clamp (expf ( logf ( camera .zoom ) + scale ) , 0.125f , 64.0f );
79
79
}
80
80
}
81
81
else
@@ -96,10 +96,10 @@ int main ()
96
96
if (IsMouseButtonDown (MOUSE_BUTTON_RIGHT ))
97
97
{
98
98
// Zoom increment
99
+ // Uses log scaling to provide consistent zoom speed
99
100
float deltaX = GetMouseDelta ().x ;
100
- float scaleFactor = 1.0f + (0.01f * fabsf (deltaX ));
101
- if (deltaX < 0 ) scaleFactor = 1.0f /scaleFactor ;
102
- camera .zoom = Clamp (camera .zoom * scaleFactor , 0.125f , 64.0f );
101
+ float scale = 0.005f * deltaX ;
102
+ camera .zoom = Clamp (expf (logf (camera .zoom )+ scale ), 0.125f , 64.0f );
103
103
}
104
104
}
105
105
//----------------------------------------------------------------------------------
@@ -143,4 +143,4 @@ int main ()
143
143
CloseWindow (); // Close window and OpenGL context
144
144
//--------------------------------------------------------------------------------------
145
145
return 0 ;
146
- }
146
+ }
0 commit comments