diff options
author | Steve Chaplin <stevech1097@yahoo.com.au> | 2010-05-31 19:33:29 +0800 |
---|---|---|
committer | Steve Chaplin <stevech1097@yahoo.com.au> | 2010-05-31 19:33:29 +0800 |
commit | 59415110e1811019d49562fd06ad75d9182b9b77 (patch) | |
tree | e161a51c2995eef4b20fedf049c1bbb157837a60 /examples/hering.py | |
download | pycairo-59415110e1811019d49562fd06ad75d9182b9b77.tar.gz |
Create the initial pycairo for Python 3.x git repo, using the py2cairo 1.8.10
files.
Remove autotools and setup.py files.
Upgrade LGPL license to version 3, remove MPL license.
Diffstat (limited to 'examples/hering.py')
-rwxr-xr-x | examples/hering.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/examples/hering.py b/examples/hering.py new file mode 100755 index 0000000..e400e15 --- /dev/null +++ b/examples/hering.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python +"""cairo/cairo-demo/png/hering.c translated into Python +""" + +import math + +import cairo + +WIDTH = 300 +HEIGHT = 600 + +def draw_hering (ctx, width, height): + LINES= 32 + MAX_THETA = .80 * math.pi * 2 + THETA_INC = 2.0 * MAX_THETA / (LINES-1) + + ctx.set_source_rgb (0, 0, 0) + ctx.set_line_width (2.0) + + ctx.save() + + ctx.translate (width / 2, height / 2) + ctx.rotate (MAX_THETA) + + for i in range (LINES): + ctx.move_to (-2 * width, 0) + ctx.line_to (2 * width, 0) + ctx.stroke() + + ctx.rotate (- THETA_INC) + + ctx.restore() + + ctx.set_line_width (6) + ctx.set_source_rgb (1, 0, 0) + + ctx.move_to (width / 4.0, 0) + ctx.rel_line_to (0, height) + ctx.stroke() + + ctx.move_to (3 * width / 4.0, 0) + ctx.rel_line_to (0, height) + ctx.stroke() + + +surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, WIDTH, HEIGHT) +ctx = cairo.Context(surface) + +ctx.set_source_rgb (1, 1, 1) +ctx.set_operator (cairo.OPERATOR_SOURCE) +ctx.paint() + +draw_hering (ctx, WIDTH, HEIGHT) + +surface.write_to_png('hering.png') |