Table Of Contents
Инструкции контекста¶
Инструкции контекста представляют собой элементы, не являющиеся графическими, такие как:
Манипуляции матрицей (PushMatrix, PopMatrix, Rotate, Translate, Scale, MatrixInstruction)
Манипуляции цветом (Color)
Привязки текстур (BindTexture)
Изменено в версии 1.0.8: Инструкция LineWidth была удалена. Она не работала ранее, и у нас не было функционирующей реализации. Нам нужно провести больше экспериментов чтобы сделать это правильно. Проверьте ошибку #207 для получения дополнительной информации.
- class kivy.graphics.context_instructions.BindTexture(**kwargs)¶
Базовый класс:
kivy.graphics.instructions.ContextInstruction
Инструкция BindTexture связывает текстуру и включает GL_TEXTURE_2D для последующего рисования.
- Параметры
- texture: Texture
Указывает текстуру, которую нужно привязать к заданному индексу.
- source¶
Устанавливает/получает источник (имя файла) для загрузки текстуры.
- class kivy.graphics.context_instructions.Color(*args, **kwargs)¶
Базовый класс:
kivy.graphics.instructions.ContextInstruction
рисуется после нее.
Это представляет собой цвет в диапазоне от 0 до 1, но применяется как множитель к текстуре любых инструкций вершины, следующих за ней на холсте. Если текстура не установлена, инструкция вершины принимает точный цвет инструкции Color.
Например, если у Прямоугольника есть текстура с однородным цветом
(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. В этом случае компонента Color вне диапазона 0-1 дает видимый результат, так как интенсивность синей компоненты удваивается.Чтобы объявить цвет в Python, вы можете сделать следующее:
from kivy.graphics import Color # создать красный цвет c = Color(1, 0, 0) # создать синий цвет c = Color(0, 1, 0) # создать синий цвет с 50% прозрачностью c = Color(0, 1, 0, .5) # используя режим hsv c = Color(0, 1, 1, mode='hsv') # используя режим hsv + альфа c = Color(0, 1, 1, .2, mode='hsv')
Вы также можете установить компоненты цвета, доступные как свойства, передав их как именованные аргументы:
<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¶
Альфа-компонент, в диапазоне от 0 до 1.
- b¶
Синий компонент, в диапазоне от 0 до 1.
- g¶
Зеленый компонент, в диапазоне от 0 до 1.
- h¶
Компонент оттенка (Hue), в диапазоне от 0 до 1.
- hsv¶
Цвет в формате HSV, список из 3 значений в диапазоне от 0 до 1, альфа будет равна 1.
- r¶
Красный компонент, в диапазоне от 0 до 1.
- rgb¶
Цвет в формате RGB, список из 3 значений в диапазоне от 0 до 1. Альфа будет равна 1.
- rgba¶
Цвет в формате RGBA, список из 4 значений в диапазоне от 0 до 1.
- s¶
Компонент насыщенности (Saturation), в диапазоне от 0 до 1.
- v¶
Компонент значения (Value), в диапазоне от 0 до 1.
- class kivy.graphics.context_instructions.MatrixInstruction(*args, **kwargs)¶
Базовый класс:
kivy.graphics.instructions.ContextInstruction
- matrix¶
Свойство Matrix. Матрица из модуля преобразования. Установка матрицы с использованием этого свойства при внесении изменений важна, потому что она уведомляет контекст о внесенных изменениях.
- stack¶
Имя стека матрицы для использования. Может быть ‘modelview_mat’, ‘projection_mat’ или ‘frag_modelview_mat’.
Добавлено в версии 1.6.0.
- class kivy.graphics.context_instructions.PopMatrix(*args, **kwargs)¶
Базовый класс:
kivy.graphics.instructions.ContextInstruction
- stack¶
Имя стека матрицы для использования. Может быть ‘modelview_mat’, ‘projection_mat’ или ‘frag_modelview_mat’.
Добавлено в версии 1.6.0.
- class kivy.graphics.context_instructions.PushMatrix(*args, **kwargs)¶
Базовый класс:
kivy.graphics.instructions.ContextInstruction
- stack¶
Имя стека матрицы для использования. Может быть ‘modelview_mat’, ‘projection_mat’ или ‘frag_modelview_mat’.
Добавлено в версии 1.6.0.
- class kivy.graphics.context_instructions.Rotate(*args, **kwargs)¶
Базовый класс:
kivy.graphics.context_instructions.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)¶
Базовый класс:
kivy.graphics.context_instructions.Transform
Создание с использованием одного или трех аргументов:
Scale(s) # масштабировать все три оси одинаково Scale(x, y, z) # масштабировать оси независимо
Устарело начиная с версии 1.6.0: Устаревшее одиночное свойство масштаба в пользу x, y, z, xyz независимых масштабных коэффициентов.
- origin¶
Центр масштабирования.
Добавлено в версии 1.9.0.
Формат центра может быть (x, y) или (x, y, z).
- scale¶
Свойство для получения/установки масштаба.
Устарело начиная с версии 1.6.0: Устаревшее в пользу свойств масштаба по осям x, y, z, xyz и т. д.
- 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)¶
Базовый класс:
kivy.graphics.context_instructions.Transform
Создайте с помощью:
Translate(x, y) # переместить только по двум осям Translate(x, y, z) # переместить по всем трём осям
- x¶
Свойство для получения/установки перемещения по оси X.
- xy¶
2-й кортеж с вектором перемещения в 2D для осей x и y.
- xyz¶
3-й кортеж с вектором перемещения в 3D по осям x, y и z.
- y¶
Свойство для получения/установки перемещения по оси Y.
- z¶
Свойство для получения/установки перемещения по оси Z.
- kivy.graphics.context_instructions.gl_init_resources()¶