2013-02-13 3 views
0

У меня есть несколько процедур рисования, которые я использую для визуализации графического представления моделирования для пользователя. Это моделирование имеет периодические граничные условия (если что-то выходит из верха, оно возвращается в дно). На данный момент реализация эффективно делает все параметры рисования как draw(x%WIDTH,y%HEIGHT), что более или менее работает - если я рисую линию от <width-1,y> до <width+1,y>, это превращается в линию по всему экрану. Я могу протестировать, если будет вызвана периодичность, и используйте move_to вместо line_to, но это кажется несколько неэффективным и работает только для полигонов.Render периодическое изображение в Каире

Есть ли способ переключить cairo на «периодический режим», где я мог бы, например, нарисовать круг, простирающийся от верхней части холста, и он появится частично на дне? Было бы очень удобно писать фактические координаты моих объектов, вместо того, чтобы делать MOD за координату на кадр.

Упреждающее примечание: «нарисуйте два круга, один на нижней и один сверху» - это не то, что я ищу.

ответ

2

Нет, такого режима нет.

Одна вещь, которая может или не может работать для вас, состоит в том, чтобы выделить поверхность альфа-каналом, которая в два раза больше в обоих направлениях, затем нарисуйте все по модулю WIDTH/HEIGHT, а затем, наконец, составьте четыре подповерхности на вашем реальный поверхность.

+0

Спасибо - это довольно аккуратный способ получить нарисованные фигуры для обертывания, даже если мне все еще нужно использовать арифметику модуля. – zebediah49

Смежные вопросы