我正在尝试使用该pixman_image_create_linear_gradient()
函数使用 libpixman 绘制线性渐变。它适用于绘制从左到右和从上到下运行的渐变,但我不知道如何以特定角度(0-360 度)绘制渐变,就像在 CSS 中可能的那样。例如,旋转 45 度的线性渐变。
我认为必须使用参数p1
,p2
因为它们定义了渐变方向,但根本没有文档,我真的不知道如何使用这两个参数来旋转渐变。
对于垂直渐变,我只需将它们设置为
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 个像素的空白空间,所以我一定做错了什么。
任何人都可以告诉我如何做到这一点吗?
谢谢!