Pixel-Composer/scripts/point_rotate/point_rotate.gml

27 lines
416 B
Text
Raw Normal View History

2024-01-24 12:19:34 +07:00
function point_rotate(px, py, ox, oy, a, p = undefined) {
2023-11-08 14:38:04 +07:00
INLINE
2023-09-09 13:52:16 +02:00
2024-01-24 12:19:34 +07:00
p ??= [ px, py ];
2023-02-23 13:02:19 +07:00
a = angle_difference(a, 0);
2024-01-24 12:19:34 +07:00
if(a == 0) {
p[0] = px;
p[1] = py;
return p;
}
if(a == 180) {
p[0] = ox + (ox - px);
p[1] = oy + (oy - py);
return p;
}
2023-02-23 13:02:19 +07:00
2022-01-13 11:24:03 +07:00
var cx = px - ox;
var cy = py - oy;
var d = -degtorad(a);
2024-01-24 12:19:34 +07:00
p[0] = ox + cx * cos(d) - cy * sin(d);
p[1] = oy + cx * sin(d) + cy * cos(d);
return p;
2022-01-13 11:24:03 +07:00
}