1

関数を使用して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 ピクセルの空白があるため、何か間違ったことをしているに違いありません。

誰かがこれを正しくする方法を教えてもらえますか?

ありがとう!

4

1 に答える 1