Как использовать GradientEntry в XFL?
<LinearGradient>
<matrix>
<Matrix a="0.0262451171875" d="0.009765625" tx="218.45" ty="83"/>
</matrix>
<GradientEntry color="#E63426" ratio="0.00392156862745098"/>
<GradientEntry color="#CA271E" ratio="0.36078431372549"/>
<GradientEntry color="#B31D19" ratio="0.749019607843137"/>
<GradientEntry color="#AB1917" ratio="1"/>
</LinearGradient>
Это релевантная часть файла xfl, которая необходима для заливки фигуры цветами с использованием градиента. Предполагается, что приведенные выше значения матрицы как-то помогут мне получить начальную и конечную координаты градиента. Кто-нибудь знает, как извлечь начальную и конечную координаты. Я недавно делал подобное, используя класс EaselJS Matrix 2D с функцией разложения для определения масштабирования, поворота, наклона и перемещения (смещения).
То, что я пытаюсь сделать, это нарисовать картинку xfl в HTML 5 с помощью canvas.
Я немного новичок в программировании, так что, возможно, мой вопрос не так хорошо сформулирован! Извини за это.
1 ответ
Я давно об этом разбираюсь, но пока не совсем понял.
Это типичная матрица преобразования, которую можно найти в файлах XFL, но что именно она преобразует, мне неизвестно. Я знаю, что если вы проведете [0,0] через матрицу преобразования и рассмотрите локальное пространство преобразования слоя (т.е. вычтете точку преобразования), вы получите центр градиента.
Однако если я преобразую [0,1], [1,0] или [1,1], результаты почти не отличаются от [0,0], поскольку значения в матрице преобразования всегда чрезвычайно малы. Похоже, что [1,0] хотя бы указывает в правильном направлении. Если я добавлю [1000,0], я получу около половины всей длины градиента.
Поэтому, основываясь только на виде, я бы сказал, что градиент будет от [-1000,0] до [1000,0]. Но это только эмпирическая оценка. Если у кого-то есть лучшая оценка или, возможно, причина, почему они сделали это таким образом, я бы хотел узнать это.