figma-plugin-helper-functions / figma-plugin-helpers

A collection of useful helper functions to import to your Figma plugin project
261 stars 25 forks source link

Issue with rotation/radius in extractRadialOrDiamondGradientParams #97

Open ianobermiller opened 2 years ago

ianobermiller commented 2 years ago

I think there is something off about how rotation and radius are computed based on the transform. I've created a test file with two equivalent radial gradients. The results look like this (numbers rounded for clarity):

// both have size 300x600

// A
transform = [[ 0, -0.5, 1], [ 0.5, 0, 0.5]]
radius = [300, 600]
rotation = 90

// B
transform = [[0.5, 0, 0.5], [0, -0.5, 1]]
radius = [300, 600]
rotation = 0

Notice that A has a rotation of 90, whereas B as a rotation of 0. Since all other params are the same and they render the same, if I were to convert the radius and rotation to SVG params then A would render incorrectly.

It also may be the case that radius and rotation cannot be used in conjunction, then I will need a different solution, perhaps using the matrix directly in an SVG.

image