培训首页  >  web前端新闻  >  兄弟连Go语言教程实现clock

兄弟连Go语言教程实现clock

[2018-08-24 15:16:26] 浏览量:93 来源:

北京兄弟连IT

  所有的新技术都经历了一些成长的痛苦,区块链技术也一样。但是,尽管它还处于发展的早期阶段,但它具有改进许多行业、许多应用和系统的巨大潜力。

 

  Go语言具有其关键特性。Go语言之所以如此强大,是因为它在服务端的开发中总能抓住程序员的痛痒需求,用直接、简单、、稳定的方式来解决并实现问题。

 

 1 package main

 2

 3 import (

 4     "bufio"

 5     "image"

 6     "image/color"

 7     "image/png"

 8     "math"

 9     "os"

10     "time"

11 )

12

13 const clock_size = 200

14 const radius = clock_size / 3

15

16 var colour color.RGBA

17

18 func circle(clock *image.RGBA) {

19     for angle := float64(0); angle < 360; angle++ {

20         radian_angle := math.Pi * 2 * angle / 360

21         x := radius*math.Sin(radian_angle) + clock_size/2

22         y := radius*math.Cos(radian_angle) + clock_size/2

23         clock.Set(int(x), int(y), colour)

24     }   

25 }

26 func hand(clock *image.RGBA, angle float64, length float64) {

27     radian_angle := math.Pi * 2 * angle

28     x_inc := math.Sin(radian_angle)

29     y_inc := -math.Cos(radian_angle)

30     for i := float64(0); i < length; i++ {

31         x := i*x_inc + clock_size/2

32         y := i*y_inc + clock_size/2

33         clock.Set(int(x), int(y), colour)

34     }   

35 }

36 func main() {

37     clock := image.NewRGBA(image.Rect(0,0,clock_size, clock_size))

38     colour.A = 255                                                                                                                                                                           

39     circle(clock)

40     colour.R, colour.G, colour.B = 255,0,0

41     time := time.Now()

42     hand(clock, (float64(time.Hour())+float64(time.Minute())/60)/12, radius*0.5)   // hour hand

43     colour.R, colour.G, colour.B = 0,255,0

44     hand(clock, (float64(time.Minute())+float64(time.Second())/60)/60, radius*0.6) // minute hand

45     colour.R, colour.G, colour.B = 0,0,255

46     hand(clock, float64(time.Second())/60, radius*0.8) // Second hand

47     out := bufio.NewWriter(os.Stdout)

48     defer out.Flush()

49     png.Encode(out, clock)

50 }

执行时,将结果重定向到.png文件中就会生成png文件

高能预警,兄弟连教育区块链直播课程8月持续火爆来袭!

原价1188元的12节区块链进阶课程,现仅需1元!

还可取《Go语言基础实战项目开发》与《Go语言实战项目开发》教材两本!!

限量!!先到先得!!

http://www.ydma.cn/open/course/24



文中图片素材来源网络,如有侵权请联系删除
  • 软件开发
  • 软件测试
  • 数据库
  • Web前端
  • 大数据
  • 人工智能
  • 零基础
  • 有HTML基础
  • 有PHP基础
  • 有C语言基础
  • 有JAVA基础
  • 其他计算机语言基础
  • 周末班
  • 全日制白班
  • 随到随学

网上报名

热门信息