数字艺术——分形山(一)夜色星空山峦叠
数字艺术——分形山(一)夜色星空山峦叠
- 前言
- 效果图
- 探索规律
- 代码实现
- 关键代码
- 说明
- 运行效果
- 美化
- 填充
- 背景
- 山峦
- 联系我
前言
如果说能画出一条直线,就能画出远近高低各不同的山峦,你信么?在遇见分形后,我相信了。
效果图
探索规律
我们来看看这张来源网络的手绘山图片,山的整体效果类似一个凸起的角,选取山的某一个局部,我们还是可以得到一个凸起(或者凹陷)的角,了解这点,我们先取两个点,连线:
接着我们取这两条线段的中点,随机的偏移一段距离,重新连线:
然后根据左边的点和中点,以及中点和右边的点,分别重复上述过程:
到这里是不是有点的山的模样了。接下来我们用代码来模拟一下这个过程。
代码实现
关键代码
/*** @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数字艺术大展"在喜玛拉雅美术馆拉开帷幕. 这无疑是当下中国最盛大.最集中的 ...
最新文章
- linux启动nifi指令,Nifi 组件脚本开发 - ExecuteScript 使用指南 (二)
- 【渝粤教育】电大中专新媒体营销实务 (7)作业 题库
- SQL 2005 with(nolock)详解
- 图片报错,显示默认图片
- 在fc6上安装myeclipse全程记录
- 大数据时代 集群NAS更给力
- Jeff Dean:谷歌大脑背后的“大脑” | AI名人堂
- python 抓取微博评论破亿_利用python实现爬取微博评论的方法
- 《程序员修炼之道——从小工到专家》 读书笔记
- 【STM32H7的DSP教程】第27章 FFT的示波器应用
- 超全!基于Java的机器学习项目、环境、库...
- 【3D建模】2020最好用的3款3D建模软件!新手入门必备建模软件!
- 内网穿透之HTTP穿透
- Java生成sitemap网站地图
- 为深度学习选择最好的GPU
- oracle 用户权限批量授予
- 久坐伤身?关于程序员站立式办公的体验,你会发现...
- Hadoop3.2.0 YARN资源配置
- 生产者与消费者模式的概念、运用、3种实现
- Centos 7安装、配置SVN
热门文章
- linux下使用ab压测接口性能方法
- 数字上的错误后缀_域名创业方法之前后缀完美搭配
- linux下system函数头文件,Linux C:system函数与后台作业
- openwrt 1407改IP
- 机器人 蓝buff 钩_LOL:机器人Q大加强,河道就能勾到蓝Buff?RNG笑了!
- 高等数学:如何求二元函数的极值问题
- 二元隐函数求二阶偏导_【考研】2019数学:难点计算之二元隐函数求极值
- 【电源设计】18650电池电源串并联设计——改变电压或容量
- Linux Redhat 7.7 DNS 配置
- osgEarth示例分析——osgearth_drawables