2017-01-23 23 views
0

この例は、Create landscape PDFに従っており、問題なく動作します。私は0,0の参照を左下隅から左上隅に移動したいと思います。それを行うには、私は変更contentStream.transform(new Matrix(0, 1, -1, 0, pageWidth, 0));が必要です。私はMatrixの引数をspecfices PDFBox Matrixのドキュメントを見てきました。PDFBoxマトリックスでの引数の意味

public Matrix(float a, 
     float b, 
     float c, 
     float d, 
     float e, 
     float f) 
Creates a matrix with the given 6 elements. 

しかし、6つの異なる引数/要素が何をするかはわかりません。私は、XとYの方向に基準を動かすために回転と2つを持っていると思います。議論を記述する文書はどこにありますか?

答えて

4

引数を説明するドキュメントはどこにありますか。

一部線形代数101

と組み合わせて

探すために文書であるPDF仕様(ISO 32000-1)PDFに変換行列は、通常では、6つの数字で指定しなければなりません6つの要素を含む配列の形式。その最も一般的な形態では、このアレイは、a b c d e fと表される。ある座標系から別の座標系への任意の線形変換を表すことができる。

(セクション8.3.3 - 共通トランスフォーメーション)の意味は、直後に説明する

PDFは、2次元空間内の座標を表します。このような空間内の点(x、y)は、[xy 1]のようにベクトル形式で表すことができる。このベクトル(1)の定数第3要素は、後述の計算でベクトルを3行3列の行列で使用できるようにするために必要です。

次の2つの座標系間の変換は、書かれた3×3の変換行列で表すことができる:

a b 0 c d 0 e f 1

を変換行列は、ほとんどで、変更することができる唯一の6つの要素を有しているのでPDFの場合は、6要素配列[abcdef]と指定しなければならない。

座標変換は、マトリックス乗算として表現されなければならない:

transformation

(セクション8.3。4 - 変換行列)

変換[ ABCDEF]は、現在設定されていて、座標(X、Y)を使用して何かを描画する際にこのように、それは 'Y' 座標(Xに現れる

transformation as coordinate-wise equations

一般的に使用される変換タイプ)である場合:

    本の
  • 翻訳は次のように指定されなければならない[1 0 0 1 トン Xトン Y]、トン Xトンは、原点を変換する距離でなければならないYそれぞれ水平および垂直方向の座標系である。

  • スケーリング[S X S Y 0]によって得られなければなりません。これは、新しい座標系の水平および垂直寸法の1単位と同じ大きさになるように座標をスケーリングS Xとユニットは、それぞれ、前の座標系におけるY S

  • ローテーションシステムの座標軸を回転させる効果を有する[COS(Q)SIN(Q)-sin(Q)COS(Q)0 0]、によって生成されなければなりません角度q反時計回り。

  • スキュー角度によってY軸によってX軸をスキュー[(B)1 0 0 1黄褐色、黄褐色()]、で定めます角度b

(セクション8.3.3 - 共通の変換)

あなたが結合された変換をしたい場合は、単に適切な順序で行列を乗算。

+0

非常に詳細な回答をいただきありがとうございます。最後に私は大学で学んだ線形代数を何に使うべきかを知っています:)。 – g3blv

関連する問題