Go实现一个简单的烟花秀效果(附带源码)

在 Go 语言中,要实现烟花秀效果可以使用 github.com/fogleman/gg 包进行绘图。以下是一个简单的例子:

首先,确保你已经安装了(有时候需要梯子才可以安装) github.com/fogleman/gg 包:

go get -u github.com/fogleman/gg

然后,使用以下 Go 代码:

package mainimport ("fmt""github.com/fogleman/gg""math/rand""time"
)const (width  = 800height = 600
)// Firework represents a single firework.
type Firework struct {X, Y  float64Color string
}// CreateFirework creates a new firework at a specific position with a random color.
func CreateFirework() *Firework {return &Firework{X:     rand.Float64() * width,Y:     rand.Float64() * height,Color: randomColor(),}
}// DrawFirework draws a firework at a specific position.
func DrawFirework(dc *gg.Context, firework *Firework) {dc.SetRGB255(firework.Color)dc.DrawCircle(firework.X, firework.Y, 5)dc.Fill()
}// randomColor generates a random RGB color.
func randomColor() string {rand.Seed(time.Now().UnixNano())return fmt.Sprintf("#%02X%02X%02X", rand.Intn(256), rand.Intn(256), rand.Intn(256))
}func main() {dc := gg.NewContext(width, height)dc.SetRGB(0, 0, 0)dc.Clear()fireworks := make([]*Firework, 10) // 发射10颗烟花for i := range fireworks {fireworks[i] = CreateFirework()}for _, firework := range fireworks {DrawFirework(dc, firework)}dc.SavePNG("fireworks.png")
}

在这个例子中,我们使用 github.com/fogleman/gg 包创建一个图形上下文,并在屏幕上绘制了十颗烟花。每颗烟花都是一个带有随机颜色的小圆点。

你可以根据需要调整程序中的参数,如烟花的数量、颜色、大小等。这只是一个简单的示例,更复杂的烟花效果可能需要使用更专业的图形库或者粒子系统。

希望你也学会了,更多编程请来二当家的素材网:https://www.erdangjiade.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/644213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iou的cpu和gpu源码实现

本专栏主要是深度学习/自动驾驶相关的源码实现,获取全套代码请参考 简介 IoU(Intersection over Union)是一种测量在特定数据集中检测相应物体准确度的一个标准,通常用于目标检测中预测框(bounding box)之间准确度的…

C语言|算术操作符相关题目

下面代码的结果是&#xff1a;( ) #include <stdio.h> int main() {int a, b, c;a 5;c a;b c, c, a, a;b a c;printf("a %d b %d c %d\n:", a, b, c);return 0; }A.a 8 b 23 c 8 B.a 9 b 23 c 8 C.a 9 b 25 c 8 D.a 9 b 24 c 8 解析&…

SSM项目集成Spring Security 4.X版本(使用spring-security.xml 配置文件方式)

目录 前言 实战开发&#xff1a; 一、Spring Security整合到SSM项目 1. pom文件引入包 2. web.xml 配置 3. 添加 spring-security.xml 文件 二、Spring Security实战应用 1. 项目结构 2. pom文件引入 3. web.xml 配置 4. Spring 配置 applicationContext.xml 5. sp…

Gartner:浪潮信息居全球服务器份额第二,中国第一

近日&#xff0c;国际权威研究机构高德纳&#xff08;Gartner&#xff09;公布《2023年第3季度全球服务器市场追踪报告》&#xff0c;2023Q3全球服务器出货量为280.6万台&#xff0c;同比下降17.0%&#xff0c;销售额为329.3亿美元&#xff0c;同比增长9.6%。浪潮信息服务器蝉联…

2-SAT问题相关理论和算法

前言 SAT 问题简介 SAT是可满足性、适定性(Satisfiability)问题的简称。一般形式为k-适定性问题或k-可满足性问题&#xff0c;简称 k-SAT。 何为布尔可满足性问题&#xff1f;给定一条真值表达式&#xff0c;包含逻辑变量、逻辑与、逻辑或以及非运算符&#xff0c;如&#x…

大模型学习笔记10——大模型法律与环境影响

大模型学习笔记10——大模型法律与环境影响 大模型法律 在我们训练大型语言模型时&#xff0c;我们必须面对版权和公平使用的问题。由于网络爬取的未筛选性质&#xff0c;你必须诉诸公平使用&#xff08;从每个人那里获得许可证将非常困难&#xff09;。模型的生成性可能会对…

Laravel框架修改默认路由的方法

Laravel框架默认提供了几个路由&#xff0c;如&#xff1a;GET、POST、PUT、DELETE等&#xff0c;这些都是针对不同的HTTP请求方法定义的。如果我们想要修改默认的路由&#xff0c;首先需要建立自定义路由。 新建一个名为routes/custom.php的文件&#xff0c;此文件用于定义自…

BioTech - 量子化学与分子力场

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/135787607 量子化学是应用量子力学的规律和方法来研究化学问题的一门学科&#xff0c;主要关注分子的结构、性质和反应过程。 量子化学的理论方法…

Redis解决方案:NOAUTH Authentication required(连接jedis绑定密码或修改redis密码)

Redis解决方案&#xff1a;NOAUTH Authentication required&#xff08;连接jedis绑定密码或修改redis密码&#xff09; Java使用jedis连接redis时出现错误NOAUTH Authentication required 一、问题报错和原因 本地设置了redis的密码&#xff0c;但在远程连接时并没有输入密…

定向减免!函数计算让 ETL 数据加工更简单

业内较为常见的高频短时 ETL 数据加工场景&#xff0c;即频率高时延短&#xff0c;一般费用大头均在函数调用次数上&#xff0c;推荐方案一般为攒批处理&#xff0c;高额的计算成本往往令用户感到头疼&#xff0c;函数计算推出定向减免方案&#xff0c;让 ETL数据加工更简单、更…

浅谈手机APP测试(流程)

前言 APP测试是一个广泛的概念&#xff0c;根据每个app的应用场景不一样&#xff0c;测试的方向也略微的不同&#xff0c;在测试过程中需要灵活应用自身所知的测试手段。 今天就跟大家简单聊聊手机APP测试的一些相关内容。 APP开发流程 &#xff08;1&#xff09; 拿到需求分…

2024年,IT行业下一个就业风口在哪?

搜狐&#xff1a;我宣布与华为达成鸿蒙全面合作&#xff01; 美团&#xff1a;我宣布与华为达成鸿蒙全面合作&#xff01; 360 &#xff1a;我宣布与华为达成鸿蒙全面合作&#xff01; 高德&#xff1a;我宣布与华为达成鸿蒙全面合作&#xff01; 新浪&#xff1a;我宣布与华为…

一站式解决钉钉开票与金蝶云星辰对接问题,让企业管理更轻松!

客户介绍 某企业服务有限公司专注于为企业提供全方位、高质量的企业服务&#xff0c;致力于于企业管理咨询、企业形象策划、市场营销策划、财务管理咨询等方面。该公司拥有一支经验丰富、专业化的团队&#xff0c;他们深入了解企业需求&#xff0c;为客户提供个性化的解决方案…

uniapp 中使用 rem 以及改变窗口动态刷新页面

注意&#xff1a;页面元素需要全部使用 rem 作为单位。 1.使用 uniapp 中的页面属性配置节点&#xff0c;page-meta&#xff0c;注意放在根元素的位置&#xff0c;也就是 template下面的第一层 <template><page-meta :root-font-size"fontsizepx" user-sc…

MoEs学习

和多任务学习的mmoe很像哦&#xff08;有空再学习一下&#xff09;moe layer的起源&#xff1a;Switch Transformers paper MoE moe由两个结构组成&#xff1a; Moe Layer &#xff1a;这些层代替了传统 Transformer 模型中的前馈网络 (FFN) 层。MoE 层包含若干“专家”(例如…

如何使用阿里云CDN服务?

如何使用阿里云CDN服务 一、开通阿里云CDN服务 注册自己阿里云账号&#xff0c;找到CDN服务&#xff0c;进行加速即可 二、配置域名信息 1、各配置参数的含义 添加加速域名&#xff1a; 如果需要使用CDN加速指定网站上的业务&#xff0c;则需要将该网站作为源站&#xff0…

《vtk9 book》 官方web版 第2章 - 面向对象设计

备注&#xff1a;本篇偏向面向对象基础知识&#xff0c;可以略过。 面向对象的系统因为很好的原因在计算机行业变得越来越普遍。面向对象的系统比传统的过程式系统更模块化、更易于维护&#xff0c;也更容易描述。由于可视化工具包是使用面向对象设计进行设计和实现的&a…

“豚门”、“吗喽”,为啥品牌宣传瞄上网红动物?

近期&#xff0c;新茶饮品牌喜茶联名红山动物园&#xff0c;凭借可爱周边拿捏无数消费者&#xff0c;再往前一段时间&#xff0c;还有奈雪联名“吗喽”表情包&#xff0c;为什么品牌宣传会瞄上网红动物&#xff0c;今天媒介盒子就来和大家聊聊。 一、 萌元素引起用户情绪共鸣 …

CQOI2014 通配符匹配

P3167 [CQOI2014] 通配符匹配 题目大意 常见的通配符有以下两种&#xff1a; *&#xff1a;可以匹配 0 0 0个及以上的任意字符?&#xff1a;可以匹配一个任意字符 给定一个由通配符和小写字母组成的字符串 S S S和 n n n个由小写字母组成的字符串 T i T_i Ti​&#xff0c…

学习 MySQL 中的 SQL_SMALL_RESULT 关键字

学习 MySQL 中的 SQL_SMALL_RESULT 关键字 SQL_SMALL_RESULT 是用于查询优化的关键字&#xff0c;适用于当预期查询结果集较小&#xff0c;同时需要对结果进行排序或分组的场景。在使用 GROUP BY 或 DISTINCT 对数据进行处理时&#xff0c;MySQL 通常会创建临时表来存储中间结…