関数を使用してlibpixmanで線形グラデーションを描画しようとしていpixman_image_create_linear_gradient()
ます。左から右、上から下にグラデーションを描画する場合は問題なく動作しますが、CSS で可能なように、特定の角度 (0 ~ 360 度) でグラデーションを描画する方法がわかりません。たとえば、45 度回転した線形グラデーションです。
p1
グラデーションの方向を定義するため、引数を使用する必要があると思いますp2
が、ドキュメントがまったくなく、これら2つのパラメーターを使用してグラデーションを回転させる方法が実際にはわかりません。
垂直グラデーションの場合、単純に設定します
p1.x = 0; p1.y = 0;
p2.x = 0; p2.y = height - 1;
そして、私が使用する水平グラデーションの場合
p1.x = 0; p1.y = 0;
p2.x = width - 1; p2.y = 0;
しかし、任意の回転にはどの値を使用すればよいでしょうか? ポイントに 2D 回転マトリックスを適用するだけでは正しく見えません。たとえば、640x480 のグラデーションを描画し、これを 45 度回転させると、ポイントになってしまいます。
p1.x = 81; p1.y = 560;
p2.x = 559; p2.y = 559;
グラデーションを正しい方向に描画しますが、グラデーションの両側に約 80 ピクセルの空白があるため、何か間違ったことをしているに違いありません。
誰かがこれを正しくする方法を教えてもらえますか?
ありがとう!