![]() ![]() ![]() To improve design by giving physical meaning to the transfer function, the arbitrary units of the system were first converted to physical units. Then an algorithm was applied to that transfer function to calculate the transferred pointer data. The user interface for acceleration and speed settings is confusing because a majority of the users don't understand the meaning of the term "acceleration" in this context.īasic Theory of Pointer Ballistics for Windows XPįor Windows XP, we designed a transfer function that relates the actual velocity of the mouse to the actual velocity of the pointer on the screen.At high-speed pointer settings, the pointer skips pixels regardless of the velocity, making fine precision selection impossible. Users with high-resolution and high-dpi (dots per inch) screens require faster pointer speeds, and the old ballistics are not set up to handle fast pointer speeds and fine precision (being able to target every pixel).For example, with the ballistics turned on, when moving pointing device in a perfect circle the resultant figure will look more like a square with rounded corners than a circle. Acceleration is applied separately to X-axis and Y-axis and thus biases the axis of greatest magnitude.Problems with pointer ballistics before Windows XP included the following: Remove the Advanced button and design a unified acceleration and velocity slider to simplify the user interface in the Mouse Properties dialog box.Minimize movement during object selection that would allow users to select objects one pixel apart.Apply a gain factor to the velocity input based on the total vector, instead of the X and Y coordinates individually.Allow effective navigation of high-resolution and high-dpi screens while maintaining pointer precision at the pixel level.The objectives of the pointer ballistics for Windows XP are to fix earlier problems and to: ![]() ![]() Pointer Ballistics Objectives for Windows XP The main feature results in smoother pointer movements regardless of the pointer speed setting. The new algorithms overcome some of the limitations and fallbacks of the ballistic algorithms in the previous operating systems. This paper describes the algorithms for the pointer ballistics for Microsoft Windows XP and is intended for hardware engineers, driver developers, test managers, and independent hardware vendors. Updated: OctoSummary of Ballistic Performance In any case, it gives you an idea of the process that hasn't changed since then.Īnd the article mentioned above, which is now dead, is archived, and gives the full technical explanation answer to the question. However, to my knowledge the formulas have changed slightly, for which reason if you intend to draw your own acceleration graphs, you shouldn't trust those formulas. 2 for the integer part and two for the fractional part.ĮDIT: This is a somewhat old article on mouse acceleration in XP. As such you will always only use the first 4 hex of each line. Any point after the fifth isn't required since Windows will extrapolate the remaining of the graph from these 5 points.Įach coordinate pair (each line of the five lines in the registry keys) is written in a 16.16 fixed point format (16 bit int + 16 bit fraction). Each subsequent line introduces an inflection point in the graph. So, if you inspect your values, you'll notice the first line of both registry values is 00,00,00,00,00,00,00,00. The first point is always 0,0, and refers to the beginning of the curved graph. SmoothMouseXCurve contains the X coordinate points and SmoothMouseYCurve contain the Y coordinate points. The two registry keys contain the 5 coordinate pairs of a mouse acceleration graph inflection points (in this case, points in a graph that produce a curve). ![]()
0 Comments
Leave a Reply. |