2022-03-29
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022-03-29相关的知识,希望对你有一定的参考价值。
参考技术A 分形几何 是几何数学中的一个分支,也称大自然几何学,由著名数学家本华曼德勃罗( 法语:BenoitB.Mandelbrot)在 1975 年构思和发展出来的一种新的几何学。分形几何是对大自然中 微观与宏观 和谐统一之美的发现,分形几何最大的特点:
整体与局部的相似性: 一个完整的图形是由诸多相似的微图形组成,而整体图形又是微图形的放大。
局部是整体的缩影,整体是局部的放大。
具有自我叠加性: 整体图形是由微图形不断重复叠加构成,且具有无限叠加能力。
什么是分形算法?
所谓 分形算法 就是使用计算机程序模拟出大自然界的分形几何图案,是 分形几何数学 与 计算机科学 相融合的艺术。
由于分形图形相似性的特点,分形算法多采用递归实现。
2. 分形算法
2.1 科赫雪花
科赫雪花是由瑞典数学家科赫在 1904 年提出的一种不规则几何图形,也称为雪花曲线。
分形图形的特点是 整体几何图形 是由一个 微图形结构 自我复制、反复叠加形成,且最终形成的整体图案和微图形结构一样。在编写分形算法时,需要先理解微图案的生成过程。
科赫雪花的微图案生成过程:
先画一条直线。科赫雪花本质就由一条直线演化而成。
三等分画好的直线。
取中间线段,然后用夹角为 60° 的两条等长线段替代。
可在每一条线段上都采用如上方式进行迭代操作,便会构造出多层次的科赫雪花。
科赫微图形算法实现:
使用 Python 自带小海龟模块绘制,科赫雪花递归算法的出口的是画直线。
importturtle'''
size:直线的长度
level: 科赫雪花的层次
'''defkoch(size, level):ifn ==1: turtle.fd(size)else:foriin[0,60, -120,60]: turtle.left(i)# 旋转后,再绘制koch(size //3, level -1)
参数说明:
size: 要绘制的直线长度。
level: 科赫雪花的层次。
0 阶和 1 阶 科赫雪花递归流程:
importturtleturtle.speed(100)defke_line(line_, n):ifn ==0: turtle.fd(line_)else: line_len = line_ //3foriin[0,60, -120,60]: turtle.left(i) ke_line(line_len, n -1)# 原始直线长度line =300# 移动小海龟到画布左下角turtle.penup()turtle.goto(-150, -150)turtle.pendown()# 1 阶科赫雪花di_gui_deep =1ke_line(line, di_gui_deep)turtle.done()
2 阶科赫雪花:
可以多画几个科赫雪花,布满整个圆周。
importturtleturtle.speed(100)defke_line(line_, n):ifn ==0: turtle.fd(line_)else: line_len = line_ //3foriin[0,60, -120,60]: turtle.left(i) ke_line(line_len, n -1)# 原始线长度line =300# 移动小海龟画布左下角turtle.penup()turtle.goto(-150, -150)turtle.pendown()# 几阶科赫雪花di_gui_deep =int(input("请输入科赫雪花的阶数:"))whileTrue:# 当多少科赫雪花围绕成一个圆周时,就构成一个完整的雪花造型count =int(input("需要几个科赫雪花:"))if360% count !=0:print("请输入 360 的倍数")else:breakforiinrange(count): ke_line(line, di_gui_deep) turtle.left(360// count)turtle.done()
4 个 3 阶科赫雪花: 每画完一个后旋转 90 度,然后再绘制另一个。
6 个 3 阶科赫雪花: 每画完一个后,旋转 60 度再画另一个。
科赫雪花的绘制并不难,本质就是画直线、旋转、再画直线……
2.2 康托三分集
由德国数学家 格奥尔格·康托尔 在1883年引入,是位于一条线段上的一些点的集合。最常见的构造是 康托尔三分点集 ,由去掉一条线段的中间三分之一得出。
构造过程:
绘制一条给定长度的直线段,将它三等分,去掉中间一段,留下两段。
再将剩下的两段再分别三等分,同样各去掉中间一段,剩下更短的四段……
将这样的操作一直继续下去,直至无穷,由于在不断分割舍弃过程中,所形成的线段数目越来越多,长度越来越小,在极限的情况下,得到一个离散的点集,称为康托尔点集。
Android Support Annotations :安卓注解快速上手
我们都知道,安卓资源文件都是int类型的ID来保存其引用,通过注解类型,可以让我们在写代码的时候,及时发现参数类型的错误,避免潜在的BUG,如下:
我们通过@LayoutRes指定了参数必须要是R.layout.xxx格式的数据,传数字IDE就会提示我们错误
通过gradle,把注解类型引入到项目中
compile ‘com.android.support:support-annotations:23.1.1‘
安卓原生给我们提供了一系列注解类,支持我们的开发
注解类所在包位置:安卓SDK路径extrasandroidm2repositorycomandroidsupportsupport-annotations
我们随便找个23.1.1文件夹,找到里面的support-annotations-23.1.1-sources.jar,通过JD-GUI查看
通过里面Res结尾的类,我们就可以限定安卓不同类型的资源ID了
里面其他类我们也可以看看,比如NonNull、Nullable、限定范围FloatRange的也很有意思,如下:
以上是关于2022-03-29的主要内容,如果未能解决你的问题,请参考以下文章
CVE-2022-22963-Spring-Core-RCE图形化利用工具
2022-03-29:整个二维平面算是一张地图,给定[x,y],表示你站在x行y列, 你可以选择面朝的任何方向, 给定一个正数值angle,表示你视野的角度为, 这个角度内你可以看无穷远,这个角度外你