基于“分形”编写的交互应用

本文介绍了一个基于Processing编写的交互应用,利用分形、力和粒子系统技术,实现了雪花飘落、雪球形成与消失以及音乐可视化的功能。应用中,雪花粒子系统与雪球间的万有引力相互作用,展示了分形理论的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 前言

  1. 背景
  2. 创意思路
  • 功能及用法

  • 相关技术

  1. 粒子系统
  2. 音乐可视化
  3. 分形
  • 总结


《基于“分形”编写的交互应用》

前言

在上学期我们已经完成《互动媒体技术》课程的基础上,本学期进一步学习和应用了互动媒体的相关技术,与之前进行简单的有关”画笔”等基础操作不同,《代码本色》这本书介绍了大量与物理世界中各种现象、理论相对应的计算机实现,在此学习基础上制作了本次将要介绍的交互应用。

  1. 背景

首先,在这门课程的整个学习中,给我留下最深刻的印象的有两个章节的内容,其中一个是“chp08_ fractals”(分形),第二个则是“ chp02_forces”(力)。究其原因,分形给我留下深刻印象是因为老师在课堂上所展示的几幅分形的画,这些画总结起来就是几个词——“无限、放大、自相似”,这种无限放大却始终能保持自相似的特性引起了我强烈的好奇心;而力这一章节给我留下深刻印象则是因为自己其实对于物理方面的知识很感兴趣,而正好这一章节将我对这方面的兴趣和我现在的专业结合了起来,将物理现象、理论通过以代码的方式将其展现了出来。

  1. 创意思路

该应用使用了” chp02_forces”、 ” chp04_systems”、” chp08_fractals”这三章中的技术,实现了雪花飘落的景象并且通过交互操作实现雪球的形成与消失这两个过程。除此之外,结合了《游戏程序设计》这一课程中学习的音乐可视化的内容,将分形得到的图像与之相结合对所播放的背景音乐进行了音乐的可视化操作。
制作该交互应用想法的最初来源其实就是在学到”分形”这一章节时老师所展示的几幅画,被”分形”深深吸引之后,就想要来实现一个简单的分形,所以最终选择了koch曲线来实现雪花的绘制。
提到雪花,自然想到的是雪景,即大量的雪花,由此产生了制作雪花粒子系统的想法。这时候,有了单片的雪花、雪景(雪花粒子系统),那么雪堆积起来的所产生的另外一个有关雪花的形态——雪球就很容易联想到了。对于雪球,我该如何将其融入这个交互系统呢?此时就想到了“力”这个概念,牛顿所发现的万有引力定律指明了——任何物体之间都有相互吸引力,那么为何不可以将”万有引力”的物理效果进行一个放大呢,由此产生的想法是——雪球接近雪花->在雪球一定范围内的雪花被雪球吸附->雪球变大,质量变大->阻力增大,运动速度变慢。


功能及用法

由于该应用的交互操作比较简单,所以直接用视频的方式来展示该应用的功能及用法
链接:基于分形编写的precessing交互应用


技术

该系统用到了《代码本色》这本书中三个章节的内容,分别是” chp02_forces”、 ” chp04_systems”、 ” chp08_fractals”,由于该交互应用的最初想法来源于“分形”这一概念,并由此再联想展开到使用“力”和“粒子系统”并最终形成该交互应用,所以在本篇文章中将着重介绍“分形”这一技术并讲解在该系统中使用到的有关“分形”的地方。

  1. 粒子系统

    1.1粒子系统技术的基本理论
    粒子系统是采用大量、具有一定声明和属性的微小粒子图元作为基本元素来绘制一个或多个对象。在粒子系统中,粒子图元的形状可以是小球、椭球、立方体或其他形状。每个粒子还具有大小、颜色、透明度、运动速度、运动方向和生命周期等属性。
    粒子在系统中要经过产生、运动和消亡三个阶段,期间粒子的大小、形状可能会随时间发生变化,其他性质如粒子的透明度、颜色和运动都随之改变,充分体现出不规则物体的动态性和随机性。
    粒子系统生成每一瞬间画面,一般都要进行一下基本步骤:
    ①:产生新的粒子加到系统中
    ②:为新生粒子设置初始属性
    ③:删除系统中已消亡的粒子
    ④:根据粒子的属性对粒子进行移动和变换:
    粒子的各种属性可以根据不同的经验函数确定,并给予一定的随机分布特性。

    1.2该应用中使用的粒子系统
    该应用中共使用到了两个粒子系统,一个是背景呈现雪景的粒子系统,该粒子系统中的单个粒子可以被雪球(鼠标控制)吸附;另一个粒子系统是点击鼠标产生的雪花喷射粒子系统,想要呈现出的效果是点击鼠标,雪球变小并开始喷射雪花直至雪球消失,该粒子系统中的单个粒子可与雪球之间产生万有引力的物理现象,但不会被雪球吸附。
    该应用中两个粒子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值