当前位置:网站首页>AutoJs学习-实现科赫雪花
AutoJs学习-实现科赫雪花
2022-08-02 09:02:00 【芝麻粒儿】
关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单。

本文约2.5千字,新手阅读需要7分钟,复习需要2分钟 【收藏随时查阅不再迷路】
实践过程
"ui";
ui.layout(
<vertical>
<canvas id="board" layout_weight="1"/>
</vertical>
);
//尺寸
const size = 256;
var i = 0
var o = [0, 0, 0]
var paint = new Paint();
ui.board.on("draw", function(canvas) {
//绘制背景色
//canvas.drawColor(colors.BLACK);
//绘制分数
paint.setColor(colors.BLACK);
paint.setTextSize(50);
//canvas.drawText(degree.x);
//toast(JSON.stringify(degree,null,4))
paint.setStrokeWidth(5);
var offset = {
x: 0,
y: 0
};
//偏移坐标
canvas.translate(offset.x, offset.y);
//绘制围墙
//toast(JSON.stringify(cube.p1,null,4))
paint.setColor(colors.RED);
paint.setStrokeWidth(1)
i+=0.1
n=(Math.sin(i)/2+0.5)*6
koch(canvas, paint,1000, 50, 1000, 2000, n);
});
function zero(num){
if(num<0){
return -1}else{
return 1}
}
//连线
function line(canvas, paint, x1, y1,x2,y2) {
canvas.drawLine(x1, y1, x2, y2, paint);
}
//三轴矩阵旋转
function koch(canvas, paint,x0, y0, x1, y1, k)
{
var x2, y2, x3, y3, x4, y4;
x2 = 2.0/3 * x0 + 1.0/3 * x1; /*由上面的运算可以得到其余三点 坐标的计算式*/
y2 = 2.0/3 * y0 + 1.0/3 * y1;
x3 = 1.0/3 * x0 + 2.0/3 * x1;
y3 = 1.0/3 * y0 + 2.0/3 * y1;
x4 = 1.0/2 * (x0 + x1) - Math.sqrt(3.0)/6 * (y1 - y0);
y4 = 1.0/2 * (y0 + y1) + Math.sqrt(3.0)/6 * (x1 - x0);
if( k > 1) /*如果迭代次数大于1,就继续迭代下去,即执行以下程序*/
{
koch(canvas, paint,x0, y0, x2, y2, k - 1); /*对以(x0, y0)和(x2, y2)为端点的线段作为 初始线段进行迭代运算,以下类同*/
koch(canvas, paint,x2, y2, x4, y4, k - 1);
koch(canvas, paint,x4, y4, x3, y3, k - 1);
koch(canvas, paint,x3, y3, x1, y1, k - 1);
} else {
/*如果迭代次数等于1,停止迭代,画出迭代生成的图形*/
line(canvas, paint,x0, y0, x2, y2); /*用直线联结两点(x0, y0)和(x2, y2)*/
line(canvas, paint,x2, y2, x4, y4); /*用直线联结两点(x2, y2)和(x4, y4)*/
line(canvas, paint,x4, y4, x3, y3); /*用直线联结两点(x4, y4)和(x3, y3)*/
line(canvas, paint,x3, y3, x1, y1); /*用直线联结两点(x3, y3)和(x1, y1)*/
}
}
其他
作者:小空和小芝中的小空
转载说明-务必注明来源:https://zhima.blog.csdn.net/
这位道友请留步️,我观你气度不凡,谈吐间隐隐有王者霸气,日后定有一番大作为!!!旁边有点赞收藏今日传你,点了吧,未来你成功️,我分文不取,若不成功️,也好回来找我。
温馨提示:点击下方卡片获取更多意想不到的资源。
边栏推荐
猜你喜欢

Redisson实现分布式锁

Worship, Alibaba distributed system development and core principle analysis manual

HCIA静态路由综合练习

Rust from entry to master 03-helloworld

【打新必读】麦澜德估值分析,骨盆及产后康复电刺激产品

Daily practice of dynamic programming (3)

【Flink 问题】Flink 如何提交轻量jar包 依赖该如何存放 会遇到哪些问题

PyQt5 (a) PyQt5 installation and configuration, read from the folder and display images, simulation to generate the sketch image

四字节的float比八字结的long范围大???

堪称神级的阿里巴巴“高并发”教程《基础+实战+源码+面试+架构》
随机推荐
Nodejs3day(express简介,express创建基本Web服务器,托管静态资源,nodemon下载及出现的问题,中间件,编写GET,POST,JSONP接口)
What is the function of the import command of the page directive in JSP?
SVN下载上传文件
Redis分布式锁入门
PyQt5(一) PyQt5安装及配置,从文件夹读取图片并显示,模拟生成素描图像
查看变量的数据格式
十、 网络管理
百数应用中心——选择一款适合企业的标准应用
堪称神级的阿里巴巴“高并发”教程《基础+实战+源码+面试+架构》
恋爱十不要
JSP页面中page指令有哪些属性及方法可使用呢?
How to use postman
【并发编程】- 线程池使用DiscardOldestPolicy策略、DiscardPolicy策略
四字节的float比八字结的long范围大???
线程池的使用及ThreadPoolExecutor源码分析
动态规划每日一练(3)
LeetCode_2358_分组的最大数量
Redisson的看门狗机制
RetinaFace: Single-stage Dense Face Localisation in the Wild
pycharm的基本使用教程(1)