目录
上下文指令¶
上下文指令表示非图形元素,例如:
矩阵操作(PushMatrix、PopMatrix、Rotate、Translate、Scale、MatrixInstruction)
颜色操作(Color)
纹理绑定(BindTexture)
在 1.0.8 版本发生变更: LineWidth 指令已被移除。它之前并未正常工作,而且我们实际上也没有可用的实现。我们需要进行更多实验才能将其完善。更多信息请查看 bug #207。
- class kivy.graphics.context_instructions.BindTexture(**kwargs)¶
-
BindTexture 指令将绑定一个纹理,并为后续绘制启用 GL_TEXTURE_2D。
- 参数:
- texture:纹理
指定要绑定到给定索引的纹理。
- source¶
设置/获取用于加载纹理的源(文件名)。
- class kivy.graphics.context_instructions.Color(*args, **kwargs)¶
-
在其之后绘制。
这表示一个介于0和1之间的颜色,但在画布中,它作为*乘数*应用于其后任何顶点指令的纹理。如果未设置纹理,顶点指令将采用Color指令的精确颜色。
例如,如果一个 Rectangle 的纹理具有统一颜色
(0.5, 0.5, 0.5, 1.0),且其前面的 Color 指令的rgba=(1, 0.5, 2, 1),那么实际可见的颜色将是(0.5, 0.25, 1.0, 1.0),因为 Color 指令作为乘法器应用于每个 rgba 分量。在这种情况下,超出 0-1 范围的 Color 分量会产生可见效果,因为蓝色分量的强度被加倍了。在Python中声明一个Color,你可以这样做:
from kivy.graphics import Color # create red v c = Color(1, 0, 0) # create blue color c = Color(0, 1, 0) # create blue color with 50% alpha c = Color(0, 1, 0, .5) # using hsv mode c = Color(0, 1, 1, mode='hsv') # using hsv mode + alpha c = Color(0, 1, 1, .2, mode='hsv')
你也可以通过关键字参数来设置颜色组件,这些组件作为属性可用,例如::
c = Color(b=0.5) # sets the blue component only
在kv语言中,你可以直接设置颜色属性:
<Rule>: canvas: # red color Color: rgb: 1, 0, 0 # blue color Color: rgb: 0, 1, 0 # blue color with 50% alpha Color: rgba: 0, 1, 0, .5 # using hsv mode Color: hsv: 0, 1, 1 # using hsv mode + alpha Color: hsv: 0, 1, 1 a: .5
- a¶
Alpha 分量,取值范围在 0 到 1 之间。
- b¶
蓝色分量,取值范围在0到1之间。
- g¶
绿色分量,取值范围在0到1之间。
- h¶
色调分量,取值范围在0到1之间。
- hsv¶
HSV 颜色,包含 3 个 0-1 范围内的值,alpha 将为 1。
- r¶
红色分量,取值范围在0到1之间。
- rgb¶
RGB 颜色,由 0-1 范围内的 3 个值组成的列表。alpha 值将为 1。
- rgba¶
RGBA颜色,由4个0-1范围内的值组成的列表。
- s¶
饱和度分量,取值范围在0到1之间。
- v¶
值组件,范围在0到1之间。
- class kivy.graphics.context_instructions.MatrixInstruction(*args, **kwargs)¶
-
- matrix¶
矩阵属性。来自变换模块的矩阵。当发生更改时,使用此属性设置矩阵非常重要,因为它会通知上下文有关更新的信息。
- stack¶
要使用的矩阵栈名称。可以是'modelview_mat'、'projection_mat'或'frag_modelview_mat'。
在 1.6.0 版本加入.
- class kivy.graphics.context_instructions.PopMatrix(*args, **kwargs)¶
-
- stack¶
要使用的矩阵栈名称。可以是'modelview_mat'、'projection_mat'或'frag_modelview_mat'。
在 1.6.0 版本加入.
- class kivy.graphics.context_instructions.PushMatrix(*args, **kwargs)¶
-
- stack¶
要使用的矩阵栈名称。可以是'modelview_mat'、'projection_mat'或'frag_modelview_mat'。
在 1.6.0 版本加入.
- class kivy.graphics.context_instructions.Rotate(*args, **kwargs)¶
基类:
Transform在模型视图矩阵上。之后,您可以通过例如::来设置指令的属性。
rot.angle = 90 rot.axis = (0, 0, 1)
- angle¶
用于获取/设置旋转角度的属性。
- axis¶
用于获取/设置旋转轴的属性。
轴的格式为(x,y,z)。
- origin¶
旋转的原点。
在 1.7.0 版本加入.
原点的格式可以是 (x, y) 或 (x, y, z)。
- class kivy.graphics.context_instructions.Scale(*args, **kwargs)¶
基类:
Transform使用三个参数创建:
Scale(x, y, z) # scale the axes independently
在 2.3.0 版本发生变更: 允许使用关键字参数来提供x、y和z。已移除已弃用的Scale(s),改用Scale(x, y, z)。
- origin¶
缩放的起点。
在 1.9.0 版本加入.
原点的格式可以是 (x, y) 或 (x, y, z)。
- x¶
用于获取/设置X轴缩放的属性。
在 1.6.0 版本发生变更.
- xyz¶
3D 中 x、y、z 轴上的三元组缩放向量。
在 1.6.0 版本发生变更.
- y¶
用于获取/设置Y轴缩放的属性。
在 1.6.0 版本发生变更.
- z¶
用于获取/设置Z轴缩放的属性。
在 1.6.0 版本发生变更.
- class kivy.graphics.context_instructions.Translate(*args, **kwargs)¶
基类:
Transform通过以下任一方式构造:
Translate(x, y) # translate in just the two axes Translate(x, y, z) # translate in all three axes
在 2.3.0 版本发生变更: 允许使用kwargs来提供x、y和z。
- x¶
用于获取/设置X轴平移的属性。
- xy¶
2元组,包含二维空间中x轴和y轴的平移向量。
- xyz¶
3D空间中x、y、z轴上的三维平移向量。
- y¶
用于获取/设置Y轴平移的属性。
- z¶
用于获取/设置Z轴平移的属性。
- kivy.graphics.context_instructions.gl_init_resources()¶