public static PointF GetPointOffsetByAngle(PointF pobjPoint, float psngAngle, float psngDistance) { PointF objReturn = default(PointF); if (float.IsNaN(psngAngle)) { return(pobjPoint); } objReturn = new PointF(Convert.ToSingle(psngDistance * (Math.Sin(TrigHelper.DegreeToRadian(Convert.ToDouble(psngAngle))))), Convert.ToSingle(psngDistance * (Math.Cos(TrigHelper.DegreeToRadian(Convert.ToDouble(psngAngle * -1))))) * -1); return(GetPointOffset(objReturn, pobjPoint)); }
public static float GetAngleBetweenPoints(PointF pobjSource, PointF pobjTarget) { double sngO = (pobjSource.Y - pobjTarget.Y); double sngA = (pobjSource.X - pobjTarget.X); float sngTan = Convert.ToSingle((sngO / sngA)); float sngAngle = Convert.ToSingle(TrigHelper.RadianToDegree(Math.Atan(Convert.ToDouble(sngTan)))); if ((sngA < 0)) { sngAngle = (sngAngle + 90f); } else { sngAngle = (sngAngle - 90f); } return(Convert.ToSingle(TrigHelper.Get0to360AngleValue(Convert.ToDouble(sngAngle)))); }