动画技术的交互应用所作的动画

作者: 周益铭

本交互设计的实现主要运用了《The Nature of Code》《代码本色—Daniel Shiffman》中向量(Vector)、力(Force)和粒子系统(Particle System)三个章节的内容。、

实验环境:processing

实验语言:java

代码量:422行

https://www.zhihu.com/video/1105910447408168960

设计思路

Step1:

我的程序是用处理语言编写的一个基本的交互式图形程序。主焦点是一个风筝,用户可以控制和改变的颜色。也有一个日夜循环与相应的太阳或月亮,也自动。有一个云会在屏幕上移动,根据程序当前处于昼夜循环的哪个部分来改变颜色。在这个周期的夜晚,有一些恒星在随机位置闪烁。

在动画和交互元素方面,风筝可以通过用户输入使用4轴移动(左、上、右和下方向)。有三个风筝尾自动动画,不需要用户输入。风筝线是固定在显示窗口左下角的贝塞尔曲线;该线根据风筝的当前位置自动调整。风筝和风筝尾巴的颜色可以由用户通过热键更改,热键在开始屏幕上显示给用户。开始屏幕,它有一个事件处理程序来确定什么时候应该启动动画。回到实际的动画中,用户可以通过单击鼠标左键来改变一天中的时间。背景将相应地改变颜色,太阳或月亮将离开屏幕,其对应物将在屏幕上以预定的弧线移动。在这个周期的夜晚,星星会随机出现并闪烁。还有一个云,根据程序在白天和晚上的哪个周期改变颜色。它会自动在屏幕上移动;当云离开屏幕时,它会循环回到开始。

上图为step1完成后的效果截图:(ps:可通过s进入主界面,“R”“G”“B”分别用来调节风筝的颜色,鼠标左键用来控制白天和黑夜的变换)

Step2:

这一部分的程序借鉴了openprocessing中一个大神的程序并加以改编,用向量和例子系统编写了一个鼠标为力的方向的自制智能体路径跟随的程序,在力的作用下方块跟随鼠标进行跟踪。

(step2主要利用了《代码本色》中第一章向量、第二章力、第四章例子系统和第六章自治智能体中的知识)

下图为Step2完成后的效果截图:

本实验的亮点:

1.对于用户界面,我很直观的展示了开始动画的方法,所以用户界面很清晰直观;

2.功能与时尚平衡,其中很重要的一点,就是颜色设计。在人机交互中,有使用颜色的指南:(1)谨慎地使用颜色:限制颜色的数字和数量,(2)认识到彩色的力量是一种编码技术,(3)留意颜色配对问题,(4)在图形显示中使用彩色以实现较大的信息密度,(5)留意对颜色代码的共同期望

3.设置较低的帧速率以平滑动画

三、具体步骤的实现

设置初始风筝、云、太阳、月亮的坐标和初始颜色和初始状态

设置较低的帧速率以平滑动画

使用系统列表中的第一个字体创建字体

设置背景

从低层到最高层:(月亮升起时,显示夜空)

1.星星

2.太阳/ 月亮

3.云

4.风筝

画风筝和风筝线(贝塞尔曲线;该线根据风筝的当前位置自动调整)和

云(根据程序在白天和晚上的哪个周期改变颜色)

如果日夜交替,或日月交替,则使太阳/月亮落下并升起。

当它设置位置时调用星来创建星

--用多少个节点之间模拟闪亮的形状变化。

夜间云彩变化

首先编写一个粒子类用于保存粒子的各种属性——位置、速度、加速度、还有粒子的大小,颜色。

将粒子的位置、速度、加速度都设置为向量的形式,这样有利于模拟在真实世界中喷泉的运动效果

粒子的大小随机,颜色随着时间的变化产生渐变

添加鼠标的交互

添加向量(将重力和吸引子质量合并为1个数)

意见反馈

我最初希望风筝尾部对用户输入做出反应(即,当用户向左移动风筝时,风筝尾部应向右流动,反之亦然)。在时间限制、效率和通用代码易读性方面,我们无法找到一种简单的方法来复制风筝尾巴动画代码并手动编辑每个坐标,可是这个不太可行。而且我们还想让星星在下一组随机的星星被吸引到屏幕上之前闪烁几次。但如果不重写大部分代码,这就太难实现了,因此,我们选择了降低新恒星出现的频率。Processing语言的简洁用法,以及它的网站和IDE为编程提供了极大的便利,同时也为学生 带来很多乐趣。

参考文献

《代码本色》第一章、第二张、第四章、第五章、第六章

androidtv item获取焦点设置动画和背景_动画技术的交互应用所作的动画相关推荐

  1. java的jna电脑桌面背景_获取bing图片并自动设置为电脑桌面背景(使用 URLDownloadToFile API函数)...

    众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...

  2. gif透明背景动画_【超实用干货! 】iPad上的动画App大推荐

    作者/立夏 编辑/彼方 大家好,我是立夏.大概在两年前吧我为大家写过几款动画APP的评测,这一次我也想给大家推荐一些我的新宠,供大家参考. 我在这里就不过多提及如Animation Desk.Proc ...

  3. corners边框_安卓中设置(shape)圆角背景和边框(stroke)相关的问题

    最近开发的项目中使用的圆角背景和边框比较多,基本都是使用shape文件和.9图片实现的.但在实现的过程中也是会出现一些小问题,这篇随笔会总结下来其中遇到的问题. 一,圆角大小不一致 1,四周圆角都为1 ...

  4. 改变窗口背景_办公软件操作技巧063:如何设置ppt母版背景

    在日常工作中,我们经常会做一些PPT演示文档,在制作过程中都会些添加背景图片用来美化修饰,这时如果逐张幻灯片去插入背景或复制粘贴图片,会很麻烦,而且图片也很容易被误操作修改,其实有更快捷且不易被修改的 ...

  5. plt.scatter设置点大小_设置电脑桌面壁纸图文教程,下载图片设置计算机系统屏幕背景方法...

    大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频. 我们改变桌面背景,需要有一些图片,我个人是在百度图片中下载图片,打开浏览器进入百度图片网站后,输入壁 ...

  6. pc模拟微信二维码背景_[深入浅出Windows 10]模拟实现微信的彩蛋动画

    9.7 模拟实现微信的彩蛋动画 大家在玩微信的时候有没有发现节日的时候发一些节日问候语句如"情人节快乐",这时候会出现很多爱心形状从屏幕上面飘落下来,我们这小节就是要模拟实现这样的 ...

  7. 仅仅有人物没背景的图片怎么弄_设置微信聊天背景里怎么就一张白色的,没有可供下载的背景图...

    在新版的微信中,不仅仅是设置一个通用的聊天背景,还可以为每一个不同的聊天人设置不同的背景,怎样设置聊天背景呢,见下文. 为不同的聊天对象设置不同的背景 1.这是新版本微信的功能,对于旧版本请更新到新版 ...

  8. Android设置Activity透明背景样式

    给Activity指定主题样式时,如果activity继承AppCompatActivity,则必须指定theme为Theme.AppCompat或者其子类,否则会报错. 首先,不设置布局文件背景颜色 ...

  9. pygame为游戏添加背景_万能的Python和Pygame模块构建一个游戏框架

    通过创建一个简单的骰子游戏来探究 Python.现在是来从零制作你自己的游戏的时间. 在我的这系列的第一篇文章中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏.这次,我将展示 ...

最新文章

  1. PhoenixGo战胜绝艺,腾讯包揽AI围棋大赛前两名
  2. R语言使用str_locate函数和str_locate_all函数来定位特定字符串或者字符串模式在字符串中的位置:str_locate函数第一个位置、str_locate_all函数定位所有位置
  3. python 向量余弦相似度
  4. 谷歌查看html地址_跑谷歌购物广告前,你需要了解这些
  5. 你想了解的「SpringCloud」都在这里
  6. html 物流状态,使用css实现物流进度的样式的实例代码
  7. 阿里云首次公布年度3大战略方向,中台做厚,做强生态,还要再招5000人
  8. input type=checkbox 前面有个可供打钩的小方框 HTML DOM Checkbox 对象
  9. 收藏 | 深度学习pytorch训练代码
  10. 逆向project实战--Afkayas.1
  11. 体验wxWindows安装
  12. 带你近距离了解小米这家公司
  13. word论文排版插件_【Office Word】论文排版有关技巧
  14. 彼得林奇的成功投资二——长期经营业绩
  15. 游戏厂商利好消息:吃鸡人气下滑严重 新一轮瓜分游戏用户盘子来啦
  16. 记Elsevier上Latex投稿
  17. 游泳馆管理系统有什么用?能解决什么问题?
  18. Spark RDD用法
  19. 除了知网、百度,还有什么查阅资料的网站或软件吗?
  20. C语言运算符的优先级表

热门文章

  1. linux: kill -9
  2. 现代优化计算方法_【公开课】供应链库存优化与需求预测管理
  3. 低通滤波和高通滤波的理解
  4. mysql数据库查询的传统句子
  5. linux音乐关机,在Deepin操作系统中关闭或者更改开机关机音乐的方法
  6. 列式存储ClickHouse(二)接口
  7. c语言变量的六要素,2-C语言复习提纲.doc
  8. uFrame近况(2016年4月8日更新)
  9. OpenShift 4 - 通过Service的nodePort访问应用
  10. C#中的WebSocket服务器