Skew Rotation!

7

SP4CEBAR 2024-06-12 20:34 (Edited)

Rotation is achieved by applying three skews

This method preserves all pixels, take a look at Mario's buttons for example.
More information here: https://lowresnx.inutilis.com/topic.php?id=3296

The current demo shows three pictures:

Skew Rotation.nx | Open in app
2024-06-14 15:20
Skew Rotation.nx | Open in app
2024-06-12 20:34

was8bit 2024-06-13 04:16

Wowzers, you did all the math... thanks so much :):):)


SP4CEBAR 2024-06-13 14:30 (Edited)

I copied all the math :)


was8bit 2024-06-13 16:16

Ah, well implementing the math into lowres code is abit of work ;)


nathanielbabiak 2024-06-13 17:55

Could you do a side-by-side comparison with "plain" rotation?


SP4CEBAR 2024-06-14 14:50 (Edited)

Matt Parker mentioned in this video that these skews can be analyzed as matrices, now I just realized it is more performant to process them this way. As an added benefit, it resembles the traditional method, the only difference is the matrix itself.

By the way, I like using 1D arrays for 2D matrices, they are easy to define and 1D arrays are more performant than 2D arrays, using arrays and passing them on to functions also allows a nice code structure compared to using variables


SP4CEBAR 2024-06-14 15:23 (Edited)

I forgot that the coordinates need to be floored in between each applied skew, I don't think I can put that into a matrix


was8bit 2024-06-14 15:30

Looks good :)


Log in to reply.