设为首页 加入收藏

TOP

电视剧里的代码真能运行吗?(二)
2023-07-25 21:25:20 】 浏览:66
Tags:能运行
.pos = pos self.pos0 = pos self.size = size self.f = f def draw(self): screen.draw.filled_rect(Rect((10*self.f*self.pos[0] + 400, -10*self.f*self.pos[1] + 300), self.size), 'hot pink') def update(self, t): df = 1 + (2 - 1.5) * sin(t * 3) / 8 self.pos = self.pos0[0] * df, self.pos0[1] * df ... t = 0 def draw(): screen.clear() for p in particles: p.draw() def update(dt): global t t += dt for p in particles: p.update(t)

  1. 剧中爱心跳动时,靠中间的点波动的幅度更大,有一种扩张的效果。所以再根据每个点距离原点的远近,再加上一个系数,离得越近,系数越大。
class Particle(): ... def update(self, t): df = 1 + (2 - 1.5 * self.f) * sin(t * 3) / 8 self.pos = self.pos0[0] * df, self.pos0[1] * df

  1. 最后再用同样的方法画一个更大一点的爱心,这个爱心不需要跳动,只要每一帧随机绘制就可以了。
def draw(): ... t = 0 while t < 2*pi: f = random.gauss(1.1, 0.1) x = 16*sin(t)**3 y = 13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t) size = (random.uniform(0.5,2.5), random.uniform(0.5,2.5)) screen.draw.filled_rect(Rect((10*f*x + 400, -10*f*y + 300), size), 'hot pink') t += dt * 3

合在一起,搞定!

总结一下,就是在原本的基础爱心曲线上加上一个正态分布的随机量、一个随时间变化的正弦函数和一个跟距离成反比的系数,外面再套一层更大的随机爱心,就得到类似剧中的跳动爱心效果。

但话说回来,真有人会在考场上这么干吗?

除非真的是超级大学霸,不然就是食堂伙食太好--

吃太饱撑的……

代码已开源:python666.cn/c/9
如二创发布请注明代码来源:Crossin的编程教室
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇抽象类的子类化机制 下一篇谷歌、微软、Meta?谁才是 Python..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目