数字艺术——分形山(一)夜色星空山峦叠

  • 前言
  • 效果图
  • 探索规律
  • 代码实现
    • 关键代码
    • 说明
    • 运行效果
  • 美化
    • 填充
    • 背景
    • 山峦
  • 联系我

前言

如果说能画出一条直线,就能画出远近高低各不同的山峦,你信么?在遇见分形后,我相信了。

效果图

探索规律


我们来看看这张来源网络的手绘山图片,山的整体效果类似一个凸起的角,选取山的某一个局部,我们还是可以得到一个凸起(或者凹陷)的角,了解这点,我们先取两个点,连线:

接着我们取这两条线段的中点,随机的偏移一段距离,重新连线:


然后根据左边的点和中点,以及中点和右边的点,分别重复上述过程:

到这里是不是有点的山的模样了。接下来我们用代码来模拟一下这个过程。

代码实现

关键代码

/*** @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【手动坏笑】。

运行效果

美化

一条线,弯弯曲曲虽然模拟了山的效果,但是太单调了。那么尝试下以下特效

填充

背景

黑漆漆的山,当然应该配上一个星空

山峦

一座山有些单调,那么就生成多个山放一起

联系我

代码绘制山峦的效果暂时到这,有兴趣探讨的小伙伴可以加我微信。

数字艺术——分形山(一)夜色星空山峦叠相关推荐

  1. 艺术之下,数学之中 | 数字艺术

    作者自述:每次看到一些美妙的数学公式,总是为之赞叹和惊讶!『数字艺术』 是一种能让人直接感受到数学的美妙性的直接体现方式! 当然,数学公式的 『抽象性』导致很多人很难轻易感受到那种趣味和快乐.这也是我 ...

  2. 案例研究:设计与方法_案例研究:未来主义与新时代数字艺术作品

    我们前代见证了社会的巨大变化. 与历史上的前世一样,人类的社会和文化常常反映在艺术品中. 例如,现代技术可以优雅地描绘我们的未来生活方式. 未来主义是用来描绘理想的未来地球社会的一种风格. 来自世界各 ...

  3. 数字签名开源_开源如何推动数字艺术时代

    数字签名开源 当我上大学时,软件开发似乎要困难得多. 我上电气工程学校,所以许多课程都涉及用汇编语言对微型计算机进行编程. 有复杂的工具链,昂贵的编译器和数千页的手册,其中描述了如何设置寄存器,以便这 ...

  4. 数码数字字体_2020年最佳创意数字艺术软件

    点击蓝色字CG猎人关注最有前景技术与教程 --  微资讯 · 微课程  -- 利用零碎时间,走上超神之路! 简介 本次选项包含了收费和免费的软件,Affinity Designer已经上升到第二位,成 ...

  5. 池塘cPond分享会第5期 • 守望者联盟 • 巴比特副总裁马千里 • 数字艺术对Web3的价值...

    " 守望者联盟第一期线上分享会 " 主办方:池塘cPond 主持人:池塘cPond创始人Chris 邀请人:巴比特副总裁马千里 主题:数字艺术对web3的价值 分享会时间: 北京时 ...

  6. 咖说 | 「延展与重构」数字艺术的新可能

    " 收集一众行业大咖观点,探索区块链商业及应用.百家争鸣.百花齐放,说理.解密.预测和八卦,了解行业内幕,看咖说就够了! 投稿请联系 :tougao@conflux-chain.org 本文 ...

  7. 计算机技术对艺术设计的意义,解析数字艺术对艺术设计的影响论文

    数字艺术的运用,改变了传统艺术设计的单一化,表面化的视觉感知方式,形成了视觉传达多样化,动态化的感知体系,增强了艺术设计的表达力度,影响改变着人们的思维及欣赏方式. 今天学习啦小编要与大家分享的是:解 ...

  8. 数字藏品叠加元宇宙热潮,数字艺术会迎来怎样的发展

    NFT(非同质化代币)正在中国快速兴起,当前被人们习惯性称为数字藏品,在叠加元宇宙热潮的背景下,数字艺术会迎来怎样的发展? 1月18日,"第七届中国艺术金融年会"在线上召开,孔中在 ...

  9. “加密上海·喜玛拉雅Web3.0数字艺术大展”落幕,AIGC和数字艺术衍生品是最大赢家?...

    图片来源:由无界版图 AI 绘画工具生成 11月11日,为期一个月的第一届"加密上海·喜玛拉雅3eb3.0数字艺术大展"在喜玛拉雅美术馆拉开帷幕. 这无疑是当下中国最盛大.最集中的 ...

最新文章

  1. fedora-10-i386下华为联网问题
  2. 相机标定的基本原理与经验分享
  3. unbutu 按照docker
  4. FPGA 中 IO 口时序分析(Input Delay /output Delay)
  5. 【C++】39. std::ofstream把程序中的中的变量值存储到文件中
  6. android开发中Switch开关在Dialog中不显示
  7. 北京人文计算机学院,北京人文大学计算机信息工程学院举行元旦晚会
  8. 计算机开机引导的结果是,电脑开机显示引导媒体是怎么回事
  9. mysql innodb 全表锁,Mysql InnoDB行锁及表锁分享
  10. Too many open files的四种解决办法
  11. 乐视android版本怎么升级,乐视网android手机客户端升级推出V2.0版
  12. attention机制的几种方法
  13. BM3D、域变换与Non-Local
  14. 树莓派raspberry pi 4 SSH默认密码无法登录解决办法
  15. php通过js连接打印机直接打印PDF文件
  16. P0-CS架构软件-BS架构软件-万维网-万维网联盟-进制-计算机存储-编解码
  17. MSP430F149按键中断寄存器配置
  18. jqgrid实现表头合并功能
  19. vue父组给子子组件传html,vue组件之间互相传值:父传子,子传父
  20. 信息隐藏——DCT隐写

热门文章

  1. 铁血联盟2源码学习笔记--Makefile边看边学
  2. Unity UI Elements——简易AB包打包工具
  3. java最大的接口_java 接口和抽象类的一个最大的区别
  4. WebDAV之葫芦儿·派盘+亨做笔记
  5. 光棍节程序员闯关秀——闲来无事玩玩儿游戏~
  6. 【STM32】解决引脚复用成PWM开漏输出峰值达不到外部上拉的电压
  7. OSGEARTH3 绘制热力图
  8. 乱序图片 极验_Geetest 极验验证 验证图片拼图
  9. 人脸识别之Hog特征+SVM分类器训练与使用
  10. java替换括号内字符串