【发布时间】:2016-02-21 14:05:57
【问题描述】:
我正在尝试使用 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 个像素的空白空间,所以我一定是做错了什么。
谁能告诉我如何解决这个问题?
谢谢!
【问题讨论】: