ID:2196447
 
Redundant
Applies to:DM Language
Status: Redundant

This feature has already been implemented, or is already achievable with existing methods.
.
The correct way to handle this is to translate before and after scaling, so as to adjust the center point. (Or if you're not doing any other operations, you can simply do a combined translate afterward.)

For instance in a 32x32 icon, this would scale from the upper left corner:

var/matrix/M = new
M.Translate(16, -16)
M.Scale(size)
M.Translate(-16, 16)

Or instead:

var/matrix/M = new
M.Scale(size)
M.Translate(-16*(size-1), 16*(size-1))
Lummox JR resolved issue (Redundant)
I don't see how even and odd locations matter, let alone what that even means. The math involved doesn't have to be hairy.
None of those things count as special circumstances you need to worry about. They're nothing more than values you plug into simple linear formulas.
You can also work around this by simply modifying pixel_x/y