長方形のpng背景に円を描くのに苦労しています。円を描こうとすると、イメージの縮尺に応じて円が引き伸ばされ、円ではなく楕円になります。
セットアップは次のとおりです。
#set background image
surface = cairo.ImageSurface.create_from_png (image)
context = cairo.Context (surface)
WIDTH = cairo.ImageSurface.get_width(surface)
HEIGHT = cairo.ImageSurface.get_height(surface)
context.scale (WIDTH, HEIGHT)
そして、ここに円描画関数 (x 座標、y 座標、半径、色値) と配置に使用される関数があります。
def draw_node(cx,cy,r, rgb):
context.arc(x_scale(cx), y_scale(cy), r, 0, 2 * math.pi)
context.set_source_rgb(rgb[0]/255.0,rgb[1]/255.0,rgb[2]/255.0)
context.fill()
context.stroke()
def x_scale (x):
width = 1000.0
return (x + .5) / width
def y_scale (y):
height = 1000.0 * HEIGHT / WIDTH
return (y + .5) / height
体系的なスケーリングの問題を解決する方法についてのアドバイスを特に感謝しますが、既存のセットアップの範囲内で円を描く方法についてのアドバイスもいただければ幸いです。
どうもありがとうございました。