Заметочки

Сборка

Jody

Чтобы избежать возни и разбирательств с autoconf/automake можно забрать из GNOME CVS модуль 'present'.

libgsf

Jody & gmorten

Преобразовать 64-битное значение в IEEE-754 можно так printf("%g", GSF_LE_GET_DOUBLE(pntr_to_data)).

pycairo

ctx.set_line_width(4)
ctx.translate(100,100)
ctx.set_source_rgb(1,0,0)

ctx.line_to(150,150)
ctx.stroke()

ctx.save()

ctx.move_to(0,0)
ctx.line_to(50,0)
ctx.set_source_rgb(0,1,0)
ctx.stroke()

ctx.move_to(0,0)
ctx.line_to(0,50)
ctx.set_source_rgb(0,0,1)

ctx.restore()
ctx.stroke()
# толщина линии 4
# 0,0 ("начало координат") теперь находится в точке 100,100
# красный цвет

# создали линию 1 от точки 100,100 до точки 250,250
# линия 1 нарисована красным цветом, толщиной 4

# сохранили толщину/цвет/трансформацию контекста

# переместились в точку 100,100
# создали линию 2 от точки 100,100 до точки 150,100
# зелёный цвет
# линия 2 нарисована зелёным цветом, толщиной 4

# переместились в точку 100,100
# создали линию 3 от точки 100,100 до точки 100,150
# синий цвет

# восстановили то, что было до save()
# линия 3 нарисована КРАСНЫМ(!) цветом

"Словарик"

Принимаем c = math.cos(a), s = math.sin(a), t = math.tan(a)
Полученную матрицу использовать в команде ctx.transform(mtrx)
ctx.translate(dx,dy)mtrx =cairo.Matrix(1,0,0,1,dx,dy)
ctx.scale(x,y)mtrx = cairo.Matrix(x,0,0,y,0,0)
ctx.rotate(a) ctx.transform(c,s,-s,c,0,0)
поворот на угол 'a' с центром x,y mtrx =cairo.Matrix(c,s,-s,c,x-c*x+s*y,y-s*x-c*y)
xskew(a) mtrx =cairo.Matrix(1,0,t,1,0,0)
yskew(a) mtrx =cairo.Matrix(1,t,0,1,0,0)
Правило умножения матриц:
Правило умножения матриц

Рецепты

fill with pattern and image sharpline with scaling

Сайт GNOME на русском! · Новости · Заметки · Проекты · Разное ·