Mega Code Archive

 
Categories / Delphi / Graphic
 

How to Rotate a 2D Point around another 2D Point

Title: How to Rotate a 2D Point around another 2D Point const PIDiv180 = 0.017453292519943295769236907684886; procedure Rotate(RotAng: Double; x, y, ox, oy: Double; var Nx, Ny: Double); begin Rotate(RotAng, x - ox, y - oy, Nx, Ny); Nx := Nx + ox; Ny := Ny + oy; end; (* End Of Rotate Cartesian Point About Origin *) procedure Rotate(RotAng: Double; x, y: Double; var Nx, Ny: Double); var SinVal: Double; CosVal: Double; begin RotAng := RotAng * PIDiv180; SinVal := Sin(RotAng); CosVal := Cos(RotAng); Nx := x * CosVal - y * SinVal; Ny := y * CosVal + x * SinVal; end; (* End Of Rotate Cartesian Point*)