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

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

前言

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

效果图

探索规律


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

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


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

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

代码实现

关键代码

/*** @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. linux启动nifi指令,Nifi 组件脚本开发 - ExecuteScript 使用指南 (二)
  2. 【渝粤教育】电大中专新媒体营销实务 (7)作业 题库
  3. SQL 2005 with(nolock)详解
  4. 图片报错,显示默认图片
  5. 在fc6上安装myeclipse全程记录
  6. 大数据时代 集群NAS更给力
  7. Jeff Dean:谷歌大脑背后的“大脑” | AI名人堂
  8. python 抓取微博评论破亿_利用python实现爬取微博评论的方法
  9. 《程序员修炼之道——从小工到专家》 读书笔记
  10. 【STM32H7的DSP教程】第27章 FFT的示波器应用
  11. 超全!基于Java的机器学习项目、环境、库...
  12. 【3D建模】2020最好用的3款3D建模软件!新手入门必备建模软件!
  13. 内网穿透之HTTP穿透
  14. Java生成sitemap网站地图
  15. 为深度学习选择最好的GPU
  16. oracle 用户权限批量授予
  17. 久坐伤身?关于程序员站立式办公的体验,你会发现...
  18. Hadoop3.2.0 YARN资源配置
  19. 生产者与消费者模式的概念、运用、3种实现
  20. Centos 7安装、配置SVN

热门文章

  1. linux下使用ab压测接口性能方法
  2. 数字上的错误后缀_域名创业方法之前后缀完美搭配
  3. linux下system函数头文件,Linux C:system函数与后台作业
  4. openwrt 1407改IP
  5. 机器人 蓝buff 钩_LOL:机器人Q大加强,河道就能勾到蓝Buff?RNG笑了!
  6. 高等数学:如何求二元函数的极值问题
  7. 二元隐函数求二阶偏导_【考研】2019数学:难点计算之二元隐函数求极值
  8. 【电源设计】18650电池电源串并联设计——改变电压或容量
  9. Linux Redhat 7.7 DNS 配置
  10. osgEarth示例分析——osgearth_drawables