سؤال

I need to make an efficient function that matches this footprint:

public static double NearestAngle(this double currentAngle, double targetAngle);

where the return value is targetAngle +/- n*2pi. The return value should minimize the absolute difference between itself and currentAngle. How can I do this efficiently in C#? I want to avoid loops as the inputs can be many circles apart.

هل كانت مفيدة؟

المحلول

return targetAngle + Math.Round((currentAngle - targetAngle)/(2*Math.Pi))*2*Math.Pi;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top