数字艺术——分形山(一)夜色星空山峦叠
数字艺术——分形山(一)夜色星空山峦叠
- 前言
- 效果图
- 探索规律
- 代码实现
- 关键代码
- 说明
- 运行效果
- 美化
- 填充
- 背景
- 山峦
- 联系我
前言
如果说能画出一条直线,就能画出远近高低各不同的山峦,你信么?在遇见分形后,我相信了。
效果图
探索规律
我们来看看这张来源网络的手绘山图片,山的整体效果类似一个凸起的角,选取山的某一个局部,我们还是可以得到一个凸起(或者凹陷)的角,了解这点,我们先取两个点,连线:
接着我们取这两条线段的中点,随机的偏移一段距离,重新连线:
然后根据左边的点和中点,以及中点和右边的点,分别重复上述过程:
到这里是不是有点的山的模样了。接下来我们用代码来模拟一下这个过程。
代码实现
关键代码
/*** @param startX 当前线段的起点X坐标* @param startY 当前线段的起点Y坐标* @param endX 当前线段的终点X坐标* @param endY 当前线段的终点Y坐标* @param yRange Y偏移的范围* @param times 递归次数*/
private void draw(Graphics g,double startX,double startY,double endX,double endY,double yRange,int times){//计算中点double centerX = (startX + endX)/2;double centerY = (startY + endY)/2;double dyRand = rand.nextDouble()*2-1;centerY = dyRand * yRange + centerY;if(--times == 0){//递归次数为0时,画线drawLine(startX,startY,centerX,centerY,g);drawLine(endX,endY,centerX,centerY,g);}else{yRange *= rate;//缩小Y方向偏移的范围draw(g, startX, startY, centerX, centerY, yRange, times);//左半部分draw(g, centerX, centerY,endX, endY, yRange, times);//右半部分}
}
说明
这里采用递归来实现,中间有一句:
yRange *= rate;
这里是对下一次中点Y方向上能偏移的距离按照一定比率缩减,我这里比率取值是0.5,另外也可以尝试看看其他值的效果,比如:1【手动坏笑】。
运行效果
美化
一条线,弯弯曲曲虽然模拟了山的效果,但是太单调了。那么尝试下以下特效
填充
背景
黑漆漆的山,当然应该配上一个星空
山峦
一座山有些单调,那么就生成多个山放一起
联系我
代码绘制山峦的效果暂时到这,有兴趣探讨的小伙伴可以加我微信。
数字艺术——分形山(一)夜色星空山峦叠相关推荐
- 艺术之下,数学之中 | 数字艺术
作者自述:每次看到一些美妙的数学公式,总是为之赞叹和惊讶!『数字艺术』 是一种能让人直接感受到数学的美妙性的直接体现方式! 当然,数学公式的 『抽象性』导致很多人很难轻易感受到那种趣味和快乐.这也是我 ...
- 案例研究:设计与方法_案例研究:未来主义与新时代数字艺术作品
我们前代见证了社会的巨大变化. 与历史上的前世一样,人类的社会和文化常常反映在艺术品中. 例如,现代技术可以优雅地描绘我们的未来生活方式. 未来主义是用来描绘理想的未来地球社会的一种风格. 来自世界各 ...
- 数字签名开源_开源如何推动数字艺术时代
数字签名开源 当我上大学时,软件开发似乎要困难得多. 我上电气工程学校,所以许多课程都涉及用汇编语言对微型计算机进行编程. 有复杂的工具链,昂贵的编译器和数千页的手册,其中描述了如何设置寄存器,以便这 ...
- 数码数字字体_2020年最佳创意数字艺术软件
点击蓝色字CG猎人关注最有前景技术与教程 -- 微资讯 · 微课程 -- 利用零碎时间,走上超神之路! 简介 本次选项包含了收费和免费的软件,Affinity Designer已经上升到第二位,成 ...
- 池塘cPond分享会第5期 • 守望者联盟 • 巴比特副总裁马千里 • 数字艺术对Web3的价值...
" 守望者联盟第一期线上分享会 " 主办方:池塘cPond 主持人:池塘cPond创始人Chris 邀请人:巴比特副总裁马千里 主题:数字艺术对web3的价值 分享会时间: 北京时 ...
- 咖说 | 「延展与重构」数字艺术的新可能
" 收集一众行业大咖观点,探索区块链商业及应用.百家争鸣.百花齐放,说理.解密.预测和八卦,了解行业内幕,看咖说就够了! 投稿请联系 :tougao@conflux-chain.org 本文 ...
- 计算机技术对艺术设计的意义,解析数字艺术对艺术设计的影响论文
数字艺术的运用,改变了传统艺术设计的单一化,表面化的视觉感知方式,形成了视觉传达多样化,动态化的感知体系,增强了艺术设计的表达力度,影响改变着人们的思维及欣赏方式. 今天学习啦小编要与大家分享的是:解 ...
- 数字藏品叠加元宇宙热潮,数字艺术会迎来怎样的发展
NFT(非同质化代币)正在中国快速兴起,当前被人们习惯性称为数字藏品,在叠加元宇宙热潮的背景下,数字艺术会迎来怎样的发展? 1月18日,"第七届中国艺术金融年会"在线上召开,孔中在 ...
- “加密上海·喜玛拉雅Web3.0数字艺术大展”落幕,AIGC和数字艺术衍生品是最大赢家?...
图片来源:由无界版图 AI 绘画工具生成 11月11日,为期一个月的第一届"加密上海·喜玛拉雅3eb3.0数字艺术大展"在喜玛拉雅美术馆拉开帷幕. 这无疑是当下中国最盛大.最集中的 ...
最新文章
- fedora-10-i386下华为联网问题
- 相机标定的基本原理与经验分享
- unbutu 按照docker
- FPGA 中 IO 口时序分析(Input Delay /output Delay)
- 【C++】39. std::ofstream把程序中的中的变量值存储到文件中
- android开发中Switch开关在Dialog中不显示
- 北京人文计算机学院,北京人文大学计算机信息工程学院举行元旦晚会
- 计算机开机引导的结果是,电脑开机显示引导媒体是怎么回事
- mysql innodb 全表锁,Mysql InnoDB行锁及表锁分享
- Too many open files的四种解决办法
- 乐视android版本怎么升级,乐视网android手机客户端升级推出V2.0版
- attention机制的几种方法
- BM3D、域变换与Non-Local
- 树莓派raspberry pi 4 SSH默认密码无法登录解决办法
- php通过js连接打印机直接打印PDF文件
- P0-CS架构软件-BS架构软件-万维网-万维网联盟-进制-计算机存储-编解码
- MSP430F149按键中断寄存器配置
- jqgrid实现表头合并功能
- vue父组给子子组件传html,vue组件之间互相传值:父传子,子传父
- 信息隐藏——DCT隐写