本文整理汇总了Golang中github.com/ajstarks/openvg.Init函数的典型用法代码示例。如果您正苦于以下问题:Golang Init函数的具体用法?Golang Init怎么用?Golang Init使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Init函数的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: main
func main() {
var cx, cy, cw, ch, midy int
message := "Now is the time for all good men to come to the aid of the party"
w, h := openvg.Init()
var speed openvg.VGfloat = 15.0
var x openvg.VGfloat = 0
midy = (h / 2)
fontsize := w / 50
cx = 0
ch = fontsize * 2
cw = w
cy = midy - (ch / 2)
rx, ry, rw, rh := openvg.VGfloat(cx), openvg.VGfloat(cy), openvg.VGfloat(cw), openvg.VGfloat(ch)
// scroll the text, only in the clipping rectangle
for x = 0; x < rw+speed; x += speed {
openvg.Start(w, h)
openvg.Background(255, 255, 255)
openvg.FillRGB(0, 0, 0, .2)
openvg.Rect(rx, ry, rw, rh)
openvg.ClipRect(cx, cy, cw, ch)
openvg.Translate(x, ry+openvg.VGfloat(fontsize/2))
openvg.FillRGB(0, 0, 0, 1)
openvg.Text(0, 0, message, "sans", fontsize)
openvg.ClipEnd()
openvg.End()
}
bufio.NewReader(os.Stdin).ReadBytes('\n')
openvg.Finish()
os.Exit(0)
}
开发者ID:jhautefeuille,项目名称:openvg,代码行数:32,代码来源:clip.go
示例2: init
func init() {
width, height = openvg.Init()
flag.Float64Var(&size, "s", float64(width)*.05, "bubble size")
flag.IntVar(&niter, "n", width/6, "number of iterations")
flag.Float64Var(&opacity, "o", 0.5, "opacity")
flag.Parse()
rand.Seed(int64(time.Now().Nanosecond()) % 1e9)
}
开发者ID:jhautefeuille,项目名称:openvg,代码行数:8,代码来源:bubtrail.go
示例3: main
// show the current time, weather and headlines
func main() {
var (
section = flag.String("h", "u.s.", "headline type (arts, health, sports, science, technology, u.s., world, hn)")
location = flag.String("loc", "40.6213,-74.4395", "lat,long for weather")
bgcolor = flag.String("bg", "slateblue", "background color")
textcolor = flag.String("tc", "white", "text color")
width = flag.Int("width", 0, "screen width")
height = flag.Int("height", 0, "screen height")
smartcolor = flag.Bool("sc", false, "smart colors")
thumb = flag.Bool("tn", false, "show thumbnails")
)
flag.Parse()
// initial display
dw, dh := openvg.Init()
if *width > 0 && *height > 0 {
dw, dh = *width, *height
}
openvg.Start(dw, dh)
canvas := display{
width: openvg.VGfloat(dw),
height: openvg.VGfloat(dh),
bgcolor: *bgcolor,
textcolor: *textcolor,
}
canvas.countdown()
openvg.End()
canvas.clock(*smartcolor)
canvas.weather(*location)
canvas.headlines(*section, *thumb)
// update on specific intervals, shutdown on interrupt
dateticker := time.NewTicker(1 * time.Minute)
weatherticker := time.NewTicker(5 * time.Minute)
headticker := time.NewTicker(10 * time.Minute)
sigint := make(chan os.Signal, 1)
signal.Notify(sigint, os.Interrupt)
for {
select {
case <-dateticker.C:
canvas.clock(*smartcolor)
case <-weatherticker.C:
canvas.weather(*location)
case <-headticker.C:
canvas.headlines(*section, *thumb)
case <-sigint:
openvg.Finish()
os.Exit(0)
}
}
}
开发者ID:Ebiroll,项目名称:openvg,代码行数:53,代码来源:twh.go
示例4: main
// main initializes the system and shows the picture.
// Exit and clean up when you hit [RETURN].
func main() {
rseed()
openvg.SaveTerm()
nargs := len(os.Args)
w, h := openvg.Init()
openvg.RawTerm()
progname := os.Args[0]
n := 5
if nargs > 2 {
n, _ = strconv.Atoi(os.Args[2])
}
if nargs > 1 {
switch os.Args[1] {
case "help":
usage(progname)
os.Exit(1)
case "advert":
advert(w, h)
case "image":
imagetable(w, h)
case "text":
tb(w, h)
case "textplay":
textplay(w, h)
case "astro":
planets(w, h, "You are here")
case "fontsize":
fontrange(w, h)
case "raspi":
raspi(w, h, "The Raspberry Pi")
case "loop":
loop(w, h)
case "demo":
demo(w, h, n)
case "rand":
rshapes(w, h, n)
case "test":
testpattern(w, h, "hello, world")
case "rotate":
rotext(w, h, n, "Raspi")
case "gradient":
gradient(w, h)
default:
refcard(w, h)
}
} else {
refcard(w, h)
}
WaitEnd()
}
开发者ID:sequoiar,项目名称:openvg,代码行数:52,代码来源:shapedemo.go
示例5: main
// main plots data from specified files or standard input in a
// grid where plotc specifies the number of columns.
func main() {
w, h := openvg.Init()
openvg.Start(w, h)
openvg.FillColor("white")
openvg.Rect(0, 0, gwidth, gheight)
filenames := flag.Args()
if len(filenames) == 0 {
doplot(beginx, beginy, "")
} else {
plotgrid(beginx, beginy, filenames)
}
openvg.SaveEnd("vgplot.raw")
bufio.NewReader(os.Stdin).ReadByte()
openvg.Finish()
}
开发者ID:sequoiar,项目名称:openvg,代码行数:17,代码来源:vgplot.go
示例6: InitDisplay
func InitDisplay(iw, ih int) {
sWidth, sHeight = openvg.Init()
iWidth, iHeight = iw, ih
out = make([]C.VGubyte, iw*ih*VG_CHANS)
// clear screen to opaque black
openvg.StartColor(sWidth, sHeight, "black", 1.0)
openvg.End()
// apply scale transform so images fill the screen
ScaleImage(float64(sWidth)/float64(iWidth),
float64(sHeight)/float64(iHeight))
fmt.Printf("Image display initialised to (%d, %d)\n", iw, ih)
}
开发者ID:strangedevice,项目名称:slowcamera,代码行数:15,代码来源:display.go
示例7: main
// raspberry pi, scaled to the screen dimensions
func main() {
w, h := openvg.Init()
midx := openvg.VGfloat(w) / 2
midy := openvg.VGfloat(h) / 2
rw := midx
rh := (rw * 2) / 3
fontsize := w / 25
openvg.Start(w, h)
openvg.Background(255, 255, 255)
makepi(midx-(rw/2), midy-(rh/2), rw, rh)
makepi(200, 100, 75, 50)
openvg.FillRGB(128, 0, 0, 1)
openvg.TextMid(midx, midy-(rh/2)-openvg.VGfloat(fontsize*2), "The Raspberry Pi", "sans", fontsize)
WaitEnd()
}
开发者ID:jhautefeuille,项目名称:openvg,代码行数:16,代码来源:raspi.go
示例8: main
func main() {
width, height := openvg.Init()
w := openvg.VGfloat(width)
h := openvg.VGfloat(height)
y := h / 2
var (
margin openvg.VGfloat = 100.0
minsize openvg.VGfloat = 7.0
labeloc openvg.VGfloat = 100.0
)
bgcolor := "black"
labelcolor := "white"
maxsize := (h / 2) * 0.05
origin := sun.distance
mostDistant := neptune.distance
firstSize := mercury.radius
lastSize := neptune.radius
openvg.Start(width, height)
openvg.BackgroundColor(bgcolor)
for _, p := range solarSystem {
x := vmap(p.distance, origin, mostDistant, margin, w-margin)
r := vmap(p.radius, firstSize, lastSize, minsize, maxsize)
if p.name == "Sun" {
openvg.FillRGB(p.color.Red, p.color.Green, p.color.Blue, 1)
openvg.Circle(margin-(r/2), y, r)
} else {
light(x, y, r, p.color)
openvg.Circle(x, y, r)
}
if p.name == "Earth" && len(os.Args) > 1 {
openvg.StrokeColor(labelcolor)
openvg.StrokeWidth(1)
openvg.Line(x, y+(r/2), x, y+labeloc)
openvg.StrokeWidth(0)
openvg.FillColor(labelcolor)
openvg.TextMid(x, y+labeloc+10, os.Args[1], "sans", 12)
}
}
openvg.End()
bufio.NewReader(os.Stdin).ReadByte()
openvg.Finish()
}
开发者ID:jhautefeuille,项目名称:openvg,代码行数:48,代码来源:planets.go
示例9: main
func main() {
setOptions()
rand.Seed(time.Now().Unix())
w, h := openvg.Init()
width, height := openvg.VGfloat(w), openvg.VGfloat(h)
initParticles(width, height)
openvg.Start(w, h)
i := 0
for {
draw(width, height)
i++
if alternate && i == nswitch { // switch launch direction every nswitch draws
directionRTL = !directionRTL
i = 0
}
}
}
开发者ID:jhautefeuille,项目名称:openvg,代码行数:17,代码来源:particles.go
示例10: main
func main() {
width, height := openvg.Init() // OpenGL, etc initialization
w2 := float64(width / 2)
h2 := float64(height / 2)
w := float64(width)
openvg.Start(width, height) // Start the picture
openvg.BackgroundColor("black") // Black background
openvg.FillRGB(44, 77, 232, 1) // Big blue marble
openvg.Circle(w2, 0, w) // The "world"
openvg.FillColor("white") // White text
openvg.TextMid(w2, h2, "hello, world", "serif", width/10) // Greetings
openvg.SaveEnd("hello.raw") // End the picture
bufio.NewReader(os.Stdin).ReadBytes('\n') // Pause until [RETURN]
openvg.Finish() // Graphics cleanup
}
开发者ID:xranby,项目名称:openvg,代码行数:17,代码来源:hellovg.go
示例11: main
func main() {
var loop = flag.Bool("loop", false, "Loop the show")
var resize = flag.Bool("resize", false, `Resize image to fit the screen.`)
var bgcolor = flag.String("bg", "black", `Background color (named color or rgb(r,g,b)).`)
var delay = flag.Duration("delay", 2*time.Second, "Delay between pictures")
flag.Usage = func() {
fmt.Fprintf(os.Stderr, "usage: %s [ flags ] images...\n", os.Args[0])
flag.PrintDefaults()
os.Exit(1)
}
flag.Parse()
w, h := openvg.Init()
images := []image.Image{}
imgcount := 0
for _, imgfile := range flag.Args() {
fmt.Fprintf(os.Stderr, "loading %q ", imgfile)
img, err := getimage(imgfile, w, h, *resize)
if err != nil {
fmt.Fprintln(os.Stderr, err)
continue
}
images = append(images, img)
imgcount++
fmt.Fprintln(os.Stderr, "ok")
}
for {
for _, img := range images {
ib := img.Bounds()
imw, imh := ib.Max.X-ib.Min.X, ib.Max.Y-ib.Min.Y
openvg.Start(w, h)
openvg.BackgroundColor(*bgcolor)
x, y := openvg.VGfloat(w)/2-openvg.VGfloat(imw)/2, openvg.VGfloat(h)/2-openvg.VGfloat(imh)/2
openvg.Img(x, y, img)
openvg.End()
time.Sleep(*delay)
}
if !*loop {
break
}
}
}
开发者ID:jhautefeuille,项目名称:openvg,代码行数:42,代码来源:picshow.go
示例12: main
func main() {
width, height := openvg.Init() // OpenGL, etc initialization
w := openvg.VGfloat(width)
h := openvg.VGfloat(height)
openvg.Start(width, height) // Start the picture
openvg.BackgroundColor("white") // Black background
openvg.FillColor("black")
var x, y, spacing openvg.VGfloat
x = w * 0.10
y = h * 0.90
fontsize := 24
spacing = openvg.VGfloat(fontsize) * 2
var data = []string{
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
"\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f",
"\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f",
"\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f",
"\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f",
"\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f",
"\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f",
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f",
"\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f",
"\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf",
"\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf",
"\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf",
"\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf",
"\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef",
"\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
}
for i, s := range data {
openvg.Text(x-(spacing*2), y, fmt.Sprintf("%2x", i), "mono", fontsize)
openvg.Text(x, y, s, "mono", fontsize)
y -= spacing
}
openvg.End() // End the picture
bufio.NewReader(os.Stdin).ReadBytes('\n') // Pause until [RETURN]
openvg.Finish() // Graphics cleanup
}
开发者ID:jhautefeuille,项目名称:openvg,代码行数:42,代码来源:chars.go
示例13: main
func main() {
width, height := openvg.Init() // OpenGL, etc initialization
w2 := float64(width / 2)
h2 := float64(height / 2)
w := float64(width)
stops := []openvg.Offcolor{
{0.0, openvg.RGB{44, 100, 232}, 1.0}, // blue-ish
{0.5, openvg.RGB{22, 50, 151}, 1.0}, // darker blue
{1.0, openvg.RGB{88, 200, 255}, 1.0}, // lighter blue
}
openvg.Start(width, height) // Start the picture
openvg.BackgroundColor("black") // Black background
openvg.FillRadialGradient(w2, 0, w2, w2, w*.5, stops) // Big blue marble
openvg.Circle(w2, 0, w) // The "world"
openvg.FillColor("white") // White text
openvg.TextMid(w2, h2, "hello, world", "serif", width/10) // Greetings
openvg.SaveEnd("hvg.raw") // End the picture
bufio.NewReader(os.Stdin).ReadBytes('\n') // Pause until [RETURN]
openvg.Finish() // Graphics cleanup
}
开发者ID:sequoiar,项目名称:openvg,代码行数:23,代码来源:hgrad.go
示例14: main
func main() {
var nr = flag.Int("n", 500, "number of objects")
var message = flag.String("m", "Go/OpenVG", "message")
var bgcolor = flag.String("bg", "white", "background color")
var fgcolor = flag.String("fg", "maroon", "text color")
flag.Parse()
rseed()
width, height := openvg.Init()
fw := openvg.VGfloat(width)
fh := openvg.VGfloat(height)
openvg.Start(width, height)
openvg.BackgroundColor(*bgcolor)
for i := 0; i < *nr; i++ {
red := uint8(rand.Intn(255))
green := uint8(rand.Intn(255))
blue := uint8(rand.Intn(255))
alpha := randf()
x := randf() * fw
y := randf() * fh
radius := randf() * fw / 10
openvg.FillRGB(red, green, blue, alpha)
openvg.Circle(x, y, radius)
}
openvg.FillColor(*fgcolor)
openvg.TextMid(fw/2, fh/2, *message, "sans", width/25)
openvg.End()
bufio.NewReader(os.Stdin).ReadBytes('\n')
openvg.Finish()
}
开发者ID:jhautefeuille,项目名称:openvg,代码行数:36,代码来源:randcircle.go
示例15: main
func main() {
var (
filename = flag.String("f", "svgcolors.txt", "input file")
fontname = flag.String("font", "sans", "fontname")
neg = flag.Bool("neg", false, "negative")
showrgb = flag.Bool("rgb", false, "show RGB")
showcode = flag.Bool("showcode", true, "show colors and codes")
circsw = flag.Bool("circle", true, "circle swatch")
outline = flag.Bool("outline", false, "outline swatch")
fontsize = flag.Int("fs", 12, "fontsize")
rowsize = flag.Int("r", 32, "rowsize")
colw = flag.Float64("c", 340, "column size")
swatch = flag.Float64("s", 16, "swatch size")
gutter = flag.Float64("g", 12, "gutter")
err error
tcolor, line string
)
flag.Parse()
f, oerr := os.Open(*filename)
if oerr != nil {
fmt.Fprintf(os.Stderr, "%v\n", oerr)
return
}
width, height := openvg.Init()
openvg.Start(width, height)
fw := openvg.VGfloat(width)
fh := openvg.VGfloat(height)
if *neg {
openvg.FillColor("black")
openvg.Rect(0, 0, fw, fh)
tcolor = "white"
} else {
openvg.FillColor("white")
openvg.Rect(0, 0, fw, fh)
tcolor = "black"
}
top := fh - 32.0
left := openvg.VGfloat(32.0)
cw := openvg.VGfloat(*colw)
sw := openvg.VGfloat(*swatch)
g := openvg.VGfloat(*gutter)
in := bufio.NewReader(f)
for x, y, nr := left, top, 0; err == nil; nr++ {
line, err = in.ReadString('\n')
fields := strings.Split(strings.TrimSpace(line), "\t")
if nr%*rowsize == 0 && nr > 0 {
x += cw
y = top
}
if len(fields) == 3 {
var red, green, blue uint8
fmt.Sscanf(fields[2], "%d,%d,%d", &red, &green, &blue)
openvg.FillRGB(red, green, blue, 1)
if *outline {
openvg.StrokeColor("black")
openvg.StrokeWidth(1)
}
if *circsw {
openvg.Circle(x+sw/2, y+sw/2, sw)
} else {
openvg.Rect(x, y, sw, sw)
}
openvg.StrokeWidth(0)
openvg.FillColor(tcolor)
openvg.Text(x+sw+openvg.VGfloat(*fontsize/2), y, fields[0], *fontname, *fontsize)
var label string
if *showcode {
if *showrgb {
label = fields[1]
} else {
label = fields[2]
}
openvg.FillColor("gray")
openvg.TextEnd(x+cw-(sw+g), y, label, *fontname, *fontsize)
}
}
y -= (sw + g)
}
openvg.End()
bufio.NewReader(os.Stdin).ReadBytes('\n')
openvg.Finish()
}
开发者ID:jhautefeuille,项目名称:openvg,代码行数:85,代码来源:colortab.go
示例16: main
func main() {
flag.Usage = func() {
fmt.Fprintf(os.Stdout,
`usage: %s [ opts ] image-path
Set specified image as an overlay screen via OpenVG lib.
Default is to put this image to the center.
`, os.Args[0])
flag.PrintDefaults()
}
var resize bool
var bg_color string
flag.BoolVar(&resize, "resize", false, `Resize image to fit the screen (using "convert" binary.`)
flag.StringVar(&bg_color, "bg-color", "",
`Background color to use with centered image, in RRGGBB (hex, e.g. "aabbcc") format.`)
flag.Parse()
if flag.NArg() != 1 {
log.Print("ERROR: Exactly one image-path argument must be specified.")
flag.Usage()
}
var r, g, b uint8
var err error
if len(bg_color) == 0 {
r, g, b = 0, 0, 0
} else if len(bg_color) == 6 {
n, err := strconv.ParseUint(bg_color[:2], 16, 8)
if err == nil {
r = uint8(n)
n, err = strconv.ParseUint(bg_color[2:4], 16, 8)
}
if err == nil {
g = uint8(n)
n, err = strconv.ParseUint(bg_color[4:6], 16, 8)
}
if err == nil {
b = uint8(n)
}
}
if err != nil {
log.Fatalf("ERROR: Failed to parse bg-color value (%v): %v", bg_color, err)
}
image_path := flag.Args()[0]
exit_code := 0
defer func() {
os.Exit(exit_code)
}()
openvg.SaveTerm()
w, h := openvg.Init()
openvg.RawTerm()
defer openvg.Finish()
defer openvg.RestoreTerm()
image_conf, err := get_image_conf(image_path)
if err == nil && resize && (image_conf.Width != w || image_conf.Height != h) {
image_path, err = resize_image(w, h, image_path)
}
if err != nil {
log.Printf("ERROR: Failed to process image (%v): %v", image_path, err)
exit_code = 1
} else {
sig_chan := make(chan os.Signal, 1)
signal.Notify(sig_chan, os.Interrupt, os.Kill,
syscall.SIGHUP, syscall.SIGTERM, syscall.SIGALRM)
openvg.Start(w, h)
openvg.Background(r, g, b)
if resize {
openvg.Image(0, 0, w, h, image_path)
} else {
x, y := openvg.VGfloat(w)/2-openvg.VGfloat(image_conf.Width)/2,
openvg.VGfloat(h)/2-openvg.VGfloat(image_conf.Height)/2
openvg.Image(x, y, image_conf.Width, image_conf.Height, image_path)
}
openvg.End()
_ = <-sig_chan
}
}
开发者ID:mk-fg,项目名称:blog,代码行数:83,代码来源:overlay-image.go
示例17: main
func main() {
var resize = flag.Bool("resize", false, "Resize image to fit the screen.")
var bgcolor = flag.String("bg", "black", "Background color (named color or rgb(r,g,b)).")
var fgcolor = flag.String("fg", "white", "text color (named color or rgb(r,g,b)).")
var title = flag.String("t", "", "text annotation")
var fontsize = flag.Float64("fp", 2.0, "fontsize %")
var px = flag.Float64("px", 50, "x position %")
var py = flag.Float64("py", 50, "y position %")
var texty = flag.Float64("ty", 0, "text y %")
var exit_code int
defer func() {
os.Exit(exit_code)
}()
flag.Usage = func() {
fmt.Fprintf(os.Stderr, `usage: %s [ flags ] image-path
Set specified image as an overlay screen via OpenVG lib.
Default is to put this image to the center.
`, os.Args[0])
flag.PrintDefaults()
exit_code = 1
return
}
flag.Parse()
if flag.NArg() != 1 {
fmt.Fprintf(os.Stderr, "Exactly one image-path argument must be specified.\n")
flag.Usage()
exit_code = 2
return
}
openvg.SaveTerm()
w, h := openvg.Init()
openvg.RawTerm()
defer openvg.Finish()
defer openvg.RestoreTerm()
img, err := getimage(flag.Args()[0], w, h, *resize)
if err != nil {
exit_code = 3
return
}
ib := img.Bounds()
imw, imh := ib.Max.X-ib.Min.X, ib.Max.Y-ib.Min.Y
sig_chan := make(chan os.Signal, 1)
signal.Notify(sig_chan, os.Interrupt, os.Kill, syscall.SIGHUP, syscall.SIGTERM, syscall.SIGALRM)
openvg.Start(w, h)
openvg.BackgroundColor(*bgcolor)
var x, y openvg.VGfloat
if *px < 0 || *px > 100 {
x = openvg.VGfloat(w)/2 - openvg.VGfloat(imw)/2
} else {
x = openvg.VGfloat(w)*openvg.VGfloat(*px/100) - openvg.VGfloat(imw)/2
}
if *py < 0 || *py > 100 {
y = openvg.VGfloat(h)/2 - openvg.VGfloat(imh)/2
} else {
y = openvg.VGfloat(h)*openvg.VGfloat(*py/100) - openvg.VGfloat(imh)/2
}
openvg.Img(x, y, img)
if len(*title) > 0 {
var typ openvg.VGfloat
fs := openvg.VGfloat(*fontsize/100.0) * openvg.VGfloat(w)
if *texty == 0 {
typ = y - fs*1.5
} else {
typ = openvg.VGfloat(h) * openvg.VGfloat(*texty/100)
}
openvg.FillColor(*fgcolor)
openvg.TextMid(x+openvg.VGfloat(imw)/2, typ, *title, "sans", int(fs))
}
openvg.End()
_ = <-sig_chan
}
开发者ID:jhautefeuille,项目名称:openvg,代码行数:79,代码来源:splash.go
示例18: main
func main() {
flag.StringVar(&mincolor, "mincolor", "maroon", "minute color")
flag.StringVar(&facecolor, "facecolor", "white", "face color")
flag.StringVar(&hrcolor, "hourcolor", "gray", "hour color")
flag.StringVar(&secolor, "secolor", "maroon", "second color")
flag.StringVar(&digitcolor, "digitcolor", "black", "digit color")
flag.StringVar(&dotcolor, "dotcolor", "silver", "dotcolor")
flag.StringVar(&framecolor, "framecolor", "gray", "frame color")
flag.StringVar(¢ercolor, "centercolor", "black", "center color")
flag.StringVar(&handstyle, "handstyle", "combo", "handstyle (combo, arrow, or round)")
flag.BoolVar(&showdigits, "showdigits", true, "show digits")
flag.BoolVar(&showdots, "showdots", true, "show dots")
flag.BoolVar(&secline, "secline", false, "show second hand")
flag.Parse()
width, height := openvg.Init()
cx := openvg.VGfloat(width / 2)
cy := openvg.VGfloat(height / 2)
facesize := openvg.VGfloat(cy * 0.5)
textsize := facesize / 10.0
framesize := facesize * 2.5
hourstroke := textsize
minstroke := hourstroke * .6
// set up the ticker and signal handler
ticker := time.NewTicker(1 * time.Second)
sigint := make(chan os.Signal, 1)
signal.Notify(sigint, os.Interrupt)
// main loop: for each second, draw the clock components
openvg.Start(width, height)
for {
select {
case <-ticker.C:
// get the current time
hr, min, sec := time.Now().Clock()
// compute element coordinates
hx, hy, mx, my, sx, sy := timecoord(cx, cy, facesize, hr, min, sec)
// frame and clock face
frame(cx, cy, framesize, facesize, textsize, framecolor, facecolor)
face(cx, cy, facesize, int(textsize*1.5))
// hour and minute hands
switch handstyle {
case "round", "r":
roundhand(cx, cy, mx, my, minstroke, mincolor)
roundhand(cx, cy, hx, hy, hourstroke, hrcolor)
case "arrow", "a":
arrowhand(cx, cy, mx, my, facesize*0.9, minangles[min], 0, mincolor)
arrowhand(cx, cy, hx, hy, facesize*0.6, hourangles[hr%12], min, hrcolor)
case "combo", "c":
combohand(cx, cy, mx, my, facesize*0.9, minstroke/2, minangles[min], 0, mincolor)
combohand(cx, cy, hx, hy, facesize*0.6, minstroke/2, hourangles[hr%12], min, hrcolor)
default:
combohand(cx, cy, mx, my, facesize*0.9, minstroke/2, minangles[min], 0, mincolor)
combohand(cx, cy, hx, hy, facesize*0.6, minstroke/2, hourangles[hr%12], min, hrcolor)
}
// second indicator
secondhand(cx, cy, sx, sy, textsize)
// center dot
centerdot(cx, cy, textsize)
// make the picture
openvg.End()
case <-sigint:
openvg.Finish()
return
}
}
}
开发者ID:jhautefeuille,项目名称:openvg,代码行数:74,代码来源:clock.go
注:本文中的github.com/ajstarks/openvg.Init函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论