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,表示你视野的角度为, 这个角度内你可以看无穷远,这个角度外你