Полярное преобразование в CSS3?

Превращение линии в кольцо — простая задача в графических программах типа GIMP:

Filter ⇒ Distorts ⇒ Polar Coordinates
(source:adamhaskell.net)

Пытаюсь выяснить, возможно ли производят тот же эффект в CSS.

Итак, я разработал следующее:

  • Приведенный выше алгоритм отображает xв rи yв θ
  • . Для этого xмасштабируется до диапазона [0,w/2]с wсоответствует ширине изображения
  • Кроме того, yмасштабируется до диапазона[0,2π]
  • Для обратного преобразования полярных координат в декартовы:xc = rp*cos(θp)иyc = rp*sin(θp)
  • Затем результат переводится таким образом, что начало координат находится в центр изображения.
  • Итак, у нас есть:

 

x' = (x/2)*cos(y/h*2π) + w/2;  
y' = (x/2)*sin(y/h*2π) + h/2;

Все это прекрасно, но как я могу создать такое преобразование в CSS? Предположительно, ни одно из ключевых слов не является полезным, поэтому это должно быть матричное преобразование. Ну, я понятия не имею, как построить матрицу из двух приведенных выше уравнений, не говоря уже о том, как представить ее в преобразовании CSS.

Может ли кто-нибудь помочь мне с этим последним шагом?

13
задан Glorfindel 19 August 2019 в 03:30
поделиться