Browse Prior Art Database

# Angle Snapping Based on Velocity

IP.com Disclosure Number: IPCOM000201590D
Publication Date: 2010-Nov-15
Document File: 6 page(s) / 143K

## Publishing Venue

The IP.com Prior Art Database

## Abstract

This paper describes the algorithm and implementation of velocity angle snapping for optical navigation application. The velocity angle snapping enhances PC gamer user experience with angle snapping enabled gaming mouse. The algorithm provides angle snapping prediction based on the mouse motion velocity. The algorithm is also made flexible for PC gamers to customize the tracking velocity and angle snap threshold to suit their gaming preferences.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 37% of the total text.

# Angle Snapping Based on Velocity

Wei Keat Yew, Wei Ye Saw, Andy Lye, Avago Technologies

## INTRODUCTION

What is Velocity Angle Snapping function?

Velocity means mouse tracking speed. The mouse tracking speed is measured in inches per second (IPS). Angle Snapping means if the mouse movement less than certain degree (Q deg) from X- Axis, the mouse movement will snap to X- Axis OR if the mouse movement less than certain degree (Q deg) from Y- Axis, the mouse movement will snap to Y- Axis.

 ) Q

 Y-Axis

X-Axis

As conclusion, Velocity Angle Snapping means if the mouse tracking above certain speed and the mouse movement less than certain degree, the movement will snap to X or Y- Axis.

## VELOCITY ALGORITHM

Relationship between actual mouse tracking velocity and firmware navigation velocity can be expressed as follow:

Equation 1: Navigation Velocity as a Function of Tracking Velocity

Example below shows a sample calculation based on ADNS-9500 laser navigation sensor:

Below is the snap angle calculation:

tan Q = Y-Axis/X-Axis

Y = tan Q * X

which;

Y = snap threshold (count in pixel)

X = reref threshold (count in pixel)

## IMPLEMENTATION

The Velocity Angle Snapping function is implementing in ADNS-9500. Below are the velocity thresholds and snap angle thresholds illustration and table.

Below VLT, mouse cursor movement is snapped to X/Y axis when tracking angle is less than ALT.

Above VUT, mouse cursor movement is snapped to X/Y axis when tracking angle is less than AUT.

In between VLT and VUT, mouse cursor movement will be same.

 Tracking Velocity (ips) Angle Snapping Threshold (degree) Upper Threshold Lower Threshold Upper Threshold Lower Threshold 2 ips 2 ips 0 deg 0 deg 4 ips 4 ips 1.79 deg 1.79 deg 6 ips 6 ips 3.58 deg 3.58 deg 8 ips 8 ips 5.36 deg 5.36 deg 10 ips 10 ips 7.13 deg 7.13 deg 12 ips 12 ips 8.88 deg 8.88 deg 14 ips 14 ips 10.62 deg 10.62 deg 16 ips 16 ips 12.34 deg 12.34 deg 18 ips 18 ips 14.04 deg 14.04 deg 20 ips 20 ips 15.71 deg 15.71 deg 22 ips 22 ips 17.35 deg 17.35 deg 24 ips 24 ips 18.97 deg 18.97 deg 26 ips 26 ips 20.56 deg 20.56 deg 28 ips 28 ips 22.11 deg 22.11 deg 30 ips 30 ips 23.63 deg 23.63 deg 32 ips 32 ips 25.11 deg 25.11 deg

### For example, if velocity snap angle setting are set as below,

• Tracking Velocity Upper Threshold (register 0x49- upper byte)     = 10 ips
• Tracking Velocity Lower Threshold (register 0x49- lower byte)      = 2 ips
• Angle Snapping Upper Threshold (register 0x42)      ...