Code archives/Miscellaneous/Curve Angle

This code has been declared by its author to be Public Domain code.

Download source code

Curve Angle by Ice92002
Returns a value between the current angle and the desired angle based on the curve value.

Use full for adding smooth movements rather than a sudden jerk or turn
Function curveangle#( currentangle#,desiredangle#,curve# )
	

	Adist#=	Sqr((DesiredAngle#-CurrentAngle#)*(DesiredAngle#-CurrentAngle#))
    If DesiredAngle>CurrentAngle 
		If Adist#>180 
			CurrentAngle=CurrentAngle-(Adist#/curve)
			If CurrentAngle<-180 Then CurrentAngle=CurrentAngle+360
		Else
			Adist#=360-Adist#
			CurrentAngle=CurrentAngle+(Adist#/curve)
			If CurrentAngle>180 Then CurrentAngle=CurrentAngle-360
		EndIf
		
    Else
		If ADist#>180 
			CurrentAngle=CurrentAngle+(Adist#/curve)
			If CurrentAngle>180 Then CurrentAngle=CurrentAngle-360
		Else
			Adist#=360-Adist#
			CurrentAngle=CurrentAngle-(Adist#/curve)
			If CurrentAngle<-180 Then CurrentAngle=CurrentAngle+360
		EndIf
    EndIf
			
	Return CurrentAngle
	
End Function

Comments

None.

Code Archives Forum