分形与数据结构第二篇

一、分形之 迭代实现分形

   本次的图形都是在之前的画图工具中实现的。

  首先,还是和原来一样建立一个JButton元素组件,然后加上监听方法;再在public void mouseClicked(MouseEvent e) {}方法中实现图形;

        else if (s.equals("图形2")) {double x1 = 0, y1 = 0, x2 = 0, y2 = 0;double a = -2, b = -2, c = -1.2, d = 2;for (int n = 0; n <= 50000; n++) {g1.setColor(Color.green);g1.setStroke(C);/** 先算出值,然后再来画图; 画图时要注意,因为求出的值很小,所以需要扩大。* 而强制转型时应该是求出的值整体转也就是应该加上括号(x2 * 100 + 350), int m = (int)x2 ** 100 + 350 ,不加括号时是,X2转型之后,再乘以100,加上350,*/x2 = (Math.sin(a * y1) - Math.cos(b * x1));y2 = (Math.sin(c * x1) - Math.cos(d * y1));// int m = (int) (x2 * 100 + 350);(x2 * 100 + 350)整体强制转型;// int s = (int) (y2 * 100 + 350);这时是X2乘以100加上350得到的数再进行转型// g.drawLine(m, s, m, s);g1.drawLine((int) (x2 * 100 + 300), (int) (y2 * 100 + 300), (int) (x2 * 100 + 300),(int) (y2 * 100 + 300));// 强制转型时,要注意加上括号,整体转型x1 = x2;y1 = y2;}

结果:

 

图形3:

 else if (s.equals("图形3")) {g1.setColor(Color.MAGENTA);g1.setStroke(C);double x1 = 0, y1 = 0, x2 = 0, y2 = 0;double a = 1.40, b = 1.56, c = 1.40, d = -6.56;for (int n = 0; n <= 60000; n++) {x2 = d * Math.sin(a * x1) - Math.sin(b * y1);y2 = c * Math.cos(a * x1) + Math.cos(b * y1);g1.drawLine((int) (x2 * 50 + 550), (int) (y2 * 50 + 300), (int) (x2 * 50 + 550), (int) (y2 * 50 + 300));// 乘以的数,控制大小,整体相加改变位置;x1 = x2;y1 = y2;}

结果:

图形四:

    else if (s.equals("图形4")) {g1.setColor(Color.BLUE);g1.setStroke(C);double a = 0.4, b = 1, c = 0;double x1 = 0, y1 = 0, x2 = 0, y2 = 0;for (int n = 0; n <= 60000; n++) {x2 = y1 - Math.signum(x1) * Math.sqrt(Math.abs(b * x1 - c));y2 = a - x1;g1.drawLine((int) (x2 * 150 + 500), (int) (y2 * 150 + 250), (int) (x2 * 150 + 500),(int) (y2 * 150 + 250));// 乘以的数,控制大小,整体相加改变位置;x1 = x2;y1 = y2;}}

结果:

 

图形五:

else if (s.equals("图形5")) {g1.setColor(Color.BLUE);g1.setStroke(C);int a = 1, b = 4, c = 60;double x1 = 0, y1 = 0, x2 = 0, y2 = 0;for (int n = 0; n <= 60000; n++) {x2 = y1 - Math.signum(x1) * Math.sqrt(Math.abs(b * x1 - c));y2 = a - x1;g1.drawLine((int) (x2 *3 + 600), (int) (y2*3  + 400), (int) (x2*3  + 600),(int) (y2*3 + 400));//注意画线的值;// 乘以的数,控制大小,整体相加改变位置;该图形的乘数不能太大,最好控制在0-5之间x1 = x2;y1 = y2;}}

结果:

 

总结:这几个分形图形还很容易的,不过要注意画图时取得的值,(应该在窗体内,xy都应该是正数,)

/**
* 窗体是以左上角为原点,窗体可见部分都是整数;也就是坐标轴的第一象限;
*/

本次用到的公式:都是在math方法中:

/**
* signum(double d):返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回 -1.0。
abs(double a):返回 double 值的绝对值。
sqrt(double a):返回正确舍入的 double 值的正平方根。
*/

 

转载于:https://www.cnblogs.com/hesi/p/5595019.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为linux版笔记本安装win7,华为MateBook X Pro笔记本怎样安装win7系统

华为MateBook X Pro的制造工艺达到了业界顶级的水准&#xff0c;高达91%的屏占比真正达到了近似全面屏的观感&#xff0c;触感顺滑质感强烈的机身让人爱不释手。对于有意选购一台高端轻薄本产品的消费者来说&#xff0c;MateBook X Pro应该是你首选的对象之一。那么这款笔记本怎…

怎么使用小爱同学音响_智能音响购买指南!!!

小度音响pro100天使用感受&#xff0c;100天前我冲动消费购买了一个智能音响&#xff0c;还是对比了多个智能音响做好的决定。使用到现在显然这个冲动消费是非常划算的&#xff0c;这个智能音响完全提升了我的生活质量&#xff0c;我现在一下班就会让它播放音乐、睡觉前播放几段…

【分享】WeX5的正确打开方式(1)

最近在研究WeX5&#xff0c;想在这里记录下使用过程中的点滴&#xff0c;今天先把之前已经掌握的分享一下。WeX5官方的开发指南难度系数较大&#xff0c;面向的受众可能是已经敲过上万行代码的html5 app开发者。但是作为一个刚进入代码世界的html5 app开发宝宝&#xff0c;本人…

过滤器,绑定事件,动画

一、基本过滤器 语法描述返回值:first选取第一个元素单个元素:last选取最后一个元素单个元素:not(selector)选取去除所有与给定选择器匹配的元素集合元素:even选取索引是偶数的所有元素(index 从0开始)集合元素:odd选取索引是奇数的所有元素(index 从0开始)单个元素:eq(index)选…

python操作mysql数据库的常用方法使用详解

python操作mysql数据库1、环境准备&#xff1a; Linux安装mysql&#xff1a; apt-get install mysql-server安装python-mysql模块&#xff1a;apt-get install python-mysqldb Windows下载安装mysqlpython操作mysql模块&#xff1a;MySQL-python-1.2.3.win32-py2.7.exe 或 MySQ…

c语言稀疏矩阵的存储,C语言:数据结构-稀疏矩阵的压缩存储

https://m.toutiaocdn.com/group/6712258385510662667/?appnews_article&timestamp1562855219&req_id201907112226580100230300187166DEA&group_id6712258385510662667(1)稀疏矩阵的特点在一个mn的矩阵中&#xff0c;设矩阵中有i个元素不为零&#xff0c;并令△i/…

计算机C语言课交作业怎么交,第一份c语言作业

2.1 你对软件工程专业或者计算机科学与技术专业了解是怎样&#xff1f;•答案&#xff1a; 软件工程专业是个年轻的专业&#xff0c;紧跟这个信息化的新时代。我学习它是因为感兴趣&#xff0c;经过一周的学习&#xff0c;我了解了一些 该专业课程主要是c语言程序设计和计算机导…

技术淘宝

? ? ? ? 精度前端学习 —— 前端开发100天&#xff08;置顶&#xff09; http://alloyteam.github.io/CodeGuide/https://github.com/AlloyTeam/CodeGuide cmd控制台的小技巧&#xff1a;可以直接将文件夹/文件丢进去&#xff0c;这样就会打印出该路径了。 舒服的字体家族…

vue 导出_Vue核心知识:8.3 vuex在vue-cli中的应用,文件之间的导出与引入

问题&#xff1a;vuex在vue-cli中的应用第一步&#xff1a;npm下载vuex资源包&#xff1a;npm install vuex --save第二步&#xff1a;在 src/main.js 中引入import Vue from vue import Vuex from vuexVue.use(Vuex)import store from ./vuex/store第三步&#xff1a;在 src 下…

android界面设计字体大小,Andoird用户界面设计上手指南:设置字体大小

教程详解技术应用: AndroidOS / Android SDK难易程度: 简单预计完成时间: 15分钟【51CTO译文】在本文中&#xff0c;我们将介绍一些简单的处理方式&#xff0c;帮助开发人员轻松编写出能够应对各类设备型号的应用程序文本方案&#xff0c;同时为用户提供自定义文字尺寸功能。别…

回溯算法解决八皇后_4皇后问题和使用回溯算法的解决方案

回溯算法解决八皇后4-皇后问题 (4 - Queens problem) In 4- queens problem, we have 4 queens to be placed on a 4*4 chessboard, satisfying the constraint that no two queens should be in the same row, same column, or in same diagonal. 在4个皇后问题中 &#xff0c…

怎么重置blockinput的锁_OPPOA9锁屏密码忘了怎么办? OPPO忘记锁屏密码的解决办法...

看点&#xff1a;iPhone X原装屏与国产屏有哪些区别&#xff1f;看点&#xff1a;换7P、8P屏幕&#xff1a;C11和DTP和DKH的区别狮淘&#xff1a;不锈钢拆机片5个只需9.9元&#xff01;包邮&#xff01;每天10名OPPOA9锁屏密码忘了怎么办&#xff1f;OPPO A9手机忘记了锁屏密码…

Android的面孔_Actiyity

一、什么是Activity&#xff1f; 简单的说&#xff1a;Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成&#xff0c;都会在Manifest.xml中指定一个主的Activity&#xff0c;如下设置 <actionandroid:name"android.in…

vsco怎么两个滤镜叠加_10 款超美的 VSCO 调色滤镜,怎么用都好看!

VSCO 里的滤镜简单 又 好看可太让人喜欢了&#xff01;但是 VSCO 的滤镜实在太多太多了有点让人眼花缭乱~今天旅拍菌请来了 摄影博主 丹丹儿啊专门来为大家盘点一波超美的 VSCO 滤镜合集&#xff01;怎么用 都很好看~微博&#xff1a;丹丹儿啊01滤镜&#xff1a;1ND1锐化&#…

Kubernetes Master High Availability 高级实践

才云科技云开源高级工程师唐继元受邀DBAplus社群&#xff0c;在线分享《Kubernetes Master High Availability 高级实践》&#xff0c;介绍如何构建Kubernetes Master High Availability环境。 以下是分享实录&#xff1a; 大家好&#xff0c;我是才云科技的唐继元&#xff0c;…

分布式系统的唯一ID

2019独角兽企业重金招聘Python工程师标准>>> 需求 为什么需要唯一ID 让分布式系统中的需要辨别的元素&#xff0c;都能有唯一的辨识标志。 几乎所有的业务系统&#xff0c;都有生成一个记录标识的需求&#xff0c;例如&#xff1a; 消息标识&#xff1a;message-id订…

android放微信@功能,Android仿微信语音消息的录制和播放功能

一、简述效果&#xff1a;实现功能&#xff1a;长按Button时改变Button显示文字&#xff0c;弹出Dialog(动态更新音量)&#xff0c;动态生成录音文件&#xff0c;开始录音&#xff1b;监听手指动作&#xff0c;规定区域。录音状态下手指划出规定区域取消录音&#xff0c;删除生…

sap中泰国有预扣税设置吗_泰国的绘图标志| Python中的图像处理

sap中泰国有预扣税设置吗A colored image can be represented as a 3 order matrix. The first order is for the rows, the second order is for the columns and the third order is for specifying the color of the corresponding pixel. Here we use the BGR color format…

Attach Volume 操作(Part II) - 每天5分钟玩转 OpenStack(54)

上一节我们讨论了 attach volume 操作中 cinder-api 的工作&#xff0c;本节讨论 cinder-volume 和 nova-compute 如何将 volume attach 到 Instance。 cinder-volume 初始化 volume 的连接 cinder-volume 接收到 initialize_connection 消息后&#xff0c;会通过 tgt 创建 ta…

FMDB的介绍

2019独角兽企业重金招聘Python工程师标准>>> FMDB方法的介绍 1.首先我们需要创建一个FMDatabase实例&#xff1a; (FMDatabase*)DataBaseSigonInstance { //数据库初始化 NSString *homeDir NSHomeDirectory(); //NSLog("%",homeDir); NSString *dbPath …