Я использую матрицы преобразования с JSPDF, чтобы изменить начало и масштабирование моих чертежей. SetCurrentTransformationMatrix не имеет официальной документации из того, что я нашел (ну, за исключением случаев, когда «устанавливает текущую матрицу преобразования», считается единой). Матрица , однако, имеет одну, которая идет на что -то вроде «Создает матрицу. В JSPDF матрицы применяются вправо, т.е. vtransformed = v x m ». Также упоминается, что: < /p>
new Matrix(a,b,c,d,e,f)
|ab0|
|cd0|
|ef1|
< /code>
Но, кажется, есть то, чего я просто не получаю. Например, я попытался рисовать круг по центру (10,5, 14,85) (на стандартной бумаге A4) со следующей матрицей преобразования: < /p>
let doc = jspdf({ unit: "cm" })
let m = doc.Matrix(1,0,0,1.7,0,0)
doc.setCurrentTransformationMatrix(m)
doc.circle(10.5, 14.85, 1)
Я ожидал, что координаты круга преобразовывают как x -> x*1 и y -> y*1.7 , и, таким образом, он находится в нижней части страницы. Тем не менее, это на самом деле выскочило на вершине. Принимая m = doc.matrix (1,0,0,0,3,0,0,0) , казалось, дал правильный результат, хотя я не могу объяснить, почему. Кроме того, по-видимому, нет такой вещи, как X-реверс, так как это странное поведение только влияет на ось Y. Взятие f! = 0 делает вещи еще более неясными, поэтому я также ищу объяснения относительно роли E и F и как это в сочетании с A, B, C и D.
Спасибо!
Я использую матрицы преобразования с JSPDF, чтобы изменить начало и масштабирование моих чертежей. SetCurrentTransformationMatrix не имеет официальной документации из того, что я нашел (ну, за исключением случаев, когда «устанавливает текущую матрицу преобразования», считается единой). Матрица , однако, имеет одну, которая идет на что -то вроде «Создает матрицу. В JSPDF матрицы применяются вправо, т.е. vtransformed = v x m ». Также упоминается, что: < /p> [code]new Matrix(a,b,c,d,e,f)
|ab0| |cd0| |ef1| < /code> Но, кажется, есть то, чего я просто не получаю. Например, я попытался рисовать круг по центру (10,5, 14,85) (на стандартной бумаге A4) со следующей матрицей преобразования: < /p> let doc = jspdf({ unit: "cm" }) let m = doc.Matrix(1,0,0,1.7,0,0) doc.setCurrentTransformationMatrix(m) doc.circle(10.5, 14.85, 1) [/code] Я ожидал, что координаты круга преобразовывают как x -> x*1 и y -> y*1.7 , и, таким образом, он находится в нижней части страницы. Тем не менее, это на самом деле выскочило на вершине. Принимая m = doc.matrix (1,0,0,0,3,0,0,0) , казалось, дал правильный результат, хотя я не могу объяснить, почему. Кроме того, по-видимому, нет такой вещи, как X-реверс, так как это странное поведение только влияет на ось Y. Взятие f! = 0 делает вещи еще более неясными, поэтому я также ищу объяснения относительно роли E и F и как это в сочетании с A, B, C и D. Спасибо!