File: android.go

package info (click to toggle)
golang-github-ajstarks-svgo 2012-01-27-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 2,720 kB
  • sloc: xml: 80; makefile: 31; sh: 29
file content (53 lines) | stat: -rw-r--r-- 1,625 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package main

import (
	"fmt"
	"os"
	
	"github.com/ajstarks/svgo"

)

var (
	width  = 500
	height = 500
	canvas = svg.New(os.Stdout)
)

const androidcolor = "rgb(164,198,57)"

func background(v int) { canvas.Rect(0, 0, width, height, canvas.RGB(v, v, v)) }

func android(x, y int, fill string, opacity float64) {
	var linestyle = []string{`stroke="` + fill + `"`, `stroke-linecap="round"`, `stroke-width="5"`}
	globalstyle := fmt.Sprintf("fill:%s;opacity:%.2f", fill, opacity)
	canvas.Gstyle(globalstyle)
	canvas.Arc(x+30, y+70, 35, 35, 0, false, true, x+130, y+70)                     // head
	canvas.Line(x+60, y+25, x+50, y+10, linestyle[0], linestyle[1], linestyle[2])   // left antenna
	canvas.Line(x+100, y+25, x+110, y+10, linestyle[0], linestyle[1], linestyle[2]) // right antenna
	canvas.Circle(x+60, y+45, 5, "fill:white")                                      // left eye
	canvas.Circle(x+100, y+45, 5, `fill="white"`)                                   // right eye
	canvas.Roundrect(x+30, y+75, 100, 90, 10, 10)                                   // body
	canvas.Rect(x+30, y+75, 100, 80)
	canvas.Roundrect(x+5, y+80, 20, 70, 10, 10)   // left arm
	canvas.Roundrect(x+135, y+80, 20, 70, 10, 10) // right arm
	canvas.Roundrect(x+50, y+150, 20, 50, 10, 10) // left leg
	canvas.Roundrect(x+90, y+150, 20, 50, 10, 10) // right leg
	canvas.Gend()
}

func main() {
	canvas.Start(width, height)
	canvas.Title("Android")
	background(255)

	android(100, 100, androidcolor, 1.0)
	canvas.Scale(3.0)
	android(50, 50, "gray", 0.5)
	canvas.Gend()

	canvas.Scale(0.5)
	android(100, 100, "red", 1.0)
	canvas.Gend()
	canvas.End()
}