Well, the answer is somehow in your question already. You will need to define some sort of ‘dead zone’ for either axis depending on context. For this, you will need to capture the pointer down event and set an offset/limit on both axis so the user can slightly move to the left/right or up/down without triggering the move on this axis. To be honest, it would be easier and probably more manageable to have two controls, one for up-down and one for rotate. But your case is totally achievable and has been done before. It will be just tricky to tune it perfectly for all situations and vectors. For registering the last pointer position, I guess you would just need to record that on pointer up. Although here, I’m not too sure here, why you would want to record the pointer position?, but then, I don’t know about your project.