From 851731f1915a4e06b44590d0bc784fe2bd85a622 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:12:22 +0200 Subject: [PATCH] add android sample --- samples/android/android.go | 75 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 samples/android/android.go diff --git a/samples/android/android.go b/samples/android/android.go new file mode 100644 index 0000000..37c9c60 --- /dev/null +++ b/samples/android/android.go @@ -0,0 +1,75 @@ +// Copyright 2010 The draw2d Authors. All rights reserved. +// created: 21/11/2010 by Laurent Le Goff + +// Package android draws an android avatar. +package android + +import ( + "image/color" + "math" + + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/samples" +) + +// Main draws a droid and returns the filename. This should only be +// used during testing. +func Main(gc draw2d.GraphicContext, ext string) (string, error) { + // Draw the droid + Draw(gc, 65, 0) + + // Return the output filename + return samples.Output("android", ext), nil +} + +// Draw the droid on a certain position. +func Draw(gc draw2d.GraphicContext, x, y float64) { + // set the fill and stroke color of the droid + gc.SetFillColor(color.RGBA{0x44, 0xff, 0x44, 0xff}) + gc.SetStrokeColor(color.RGBA{0x44, 0x44, 0x44, 0xff}) + + // set line properties + gc.SetLineCap(draw2d.RoundCap) + gc.SetLineWidth(5) + + // head + gc.MoveTo(x+30, y+70) + gc.ArcTo(x+80, y+70, 50, 50, 180*(math.Pi/180), 180*(math.Pi/180)) + gc.Close() + gc.FillStroke() + gc.MoveTo(x+60, y+25) + gc.LineTo(x+50, y+10) + gc.MoveTo(x+100, y+25) + gc.LineTo(x+110, y+10) + gc.Stroke() + + // left eye + draw2d.Circle(gc, x+60, y+45, 5) + gc.FillStroke() + + // right eye + draw2d.Circle(gc, x+100, y+45, 5) + gc.FillStroke() + + // body + draw2d.RoundRect(gc, x+30, y+75, x+30+100, y+75+90, 10, 10) + gc.FillStroke() + draw2d.Rect(gc, x+30, y+75, x+30+100, y+75+80) + gc.FillStroke() + + // left arm + draw2d.RoundRect(gc, x+5, y+80, x+5+20, y+80+70, 10, 10) + gc.FillStroke() + + // right arm + draw2d.RoundRect(gc, x+135, y+80, x+135+20, y+80+70, 10, 10) + gc.FillStroke() + + // left leg + draw2d.RoundRect(gc, x+50, y+150, x+50+20, y+150+50, 10, 10) + gc.FillStroke() + + // right leg + draw2d.RoundRect(gc, x+90, y+150, x+90+20, y+150+50, 10, 10) + gc.FillStroke() +}