分形与数据结构第二篇

一、分形之 迭代实现分形

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

  首先,还是和原来一样建立一个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,一经查实,立即删除!

相关文章

python socket 大文件_python之socket运用之传输大文件

socket建议最大的传输单元是8192个字符&#xff0c;但是如果超过8192就会出现问题&#xff0c;我们可以用下面的方法处理客户端代码import subprocessimport socketip_bind ("127.0.0.1",9000)client socket.socket()client.connect(ip_bind)l1 []while True:opti…

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

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

横竖屏切换

单一控制器的横竖屏切换 if ([[UIDevice currentDevice] respondsToSelector:selector(setOrientation:)]) { SEL selector NSSelectorFromString("setOrientation:"); NSInvocation *invocation [NSInvocation invocationWithMethodSignature:[UIDevice instanceM…

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

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

达芬奇linux 与win,抛弃Linux:达芬奇软件WIN版安装及设置.doc

达芬奇软件Windows版本安装及设置指南注意事项&#xff1a;1. windows帐户名一定要是英文&#xff0c;否则安装过程中解压临时文件路径中有中文&#xff0c;安装会出错。如果帐户名是中文&#xff0c;需要在环境变量里面将用户环境变量的路径设为英文路径2. 这里我的安装路径都…

今天的几件琐事

最近发现突然忙了一些之后&#xff0c;很多事情都给耽误了&#xff0c;暂且称为拖延症吧。原本计划的很不错的学习计划&#xff0c;最近貌似也给耽误了不少&#xff0c;虽然每天回来会想今天写点什么&#xff0c;今天忙了些什么&#xff0c;发现好像今天的进步不大。因为离自己…

python做数学计算器_Python数学运算入门把Python当作计算器

Struts2 Interceptor学习Interceptor的设计思想,其实是Spring里面的AOP思想,尽管Struts2又有自己的Interceptor但是,在实际开发中,用的较少,SSH整合之后你可以采用AOP事务处理进行拦截,更 ...Mysql使用workbench迁移数据原文:http://jingyan.baidu.com/article/925f8cb8f3ec25c…

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

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

linux multipath.log,Linux Multipath配置

关于Linux Multipath配置&#xff0c;网上还是很多的&#xff0c;自己再来梳理一下&#xff0c;当前环境为RedHat6&#xff0c;HP P2000存储1. 安装软件。查看是否安装 rpm -qa |grep device-mapperdevice-mapper-multipath-libs-0.4.9-31.el6.x86_64device-mapper-event-libs-…

python文件封装成jar_【Python】Python文件打包为可执行文件

之前写的用于创建、链接Jenkins slave脚本是使用Python实现的&#xff0c;为了使未安装Python环境的伙伴也可以直接使用&#xff0c;故需要将其可直接执行的exe可执行文件。一、安装pyinsatller在cmd控制台输入以下命令进行安装。pip install pyinstaller二、使用pyinstaller打…

svn , github工作流

svn 需要有一台中央服务器&#xff0c;所有的分支&#xff0c;主干&#xff0c;标签&#xff0c;全都保存在这台中央服务器上。开发着需要提交代码时&#xff0c;需要保持中央服务器连接。切换分支时会有本地与服务器网络连接。 git 改进了这一点&#xff0c;每台安装有git的机…

linux控制流程,Linux - Bash - 流程控制

sh的流程控制不可为空,不能什么都不能做&#xff0c;不能像php这样&#xff1a;if (isset($_GET["q"])) {search(q);}else {// 不做任何事情}在sh/bash里可不能这么写&#xff0c;如果else分支没有语句执行&#xff0c;就不要写这个else。if elseifif语句语法格式&am…

python文本词频统计是什么_python 大批量文本分词 以及词频统计 (高效处理案例)...

环境&#xff1a;python3.6库&#xff1a;jieba&#xff0c;xlwt&#xff0c;xlwings&#xff0c;collections前两天有个需求要对一张表里的中文语句进行分词&#xff0c;并统计每个词语出现的次数。表格1231.xlsx大致内容如下&#xff1a;由于表格内容过大&#xff0c;约有100…

c语言字符串匹配函数index,C语言(函数)学习之index、rindex

函数定义&#xff1a;char *index(const char *s, int c);头文件&#xff1a; #include strings.h函数说明&#xff1a;index()用来找出参数s 字符串中第一个出现的参数c 地址&#xff0c;然后将该字符出现的地址返回。字符串结束字符(NULL)也视为字符串一部分。返回值&…

JZ-C-35

剑指offer第三十五题&#xff1a;第一个只出现一次的字符 1 //2 // Name : JZ-C-35.cpp3 // Author : Laughing_Lz4 // Version :5 // Copyright : All Right Reserved6 // Description : 第一个只出现一次的字符7 //8 9 #include <iostream> 10 #incl…

过滤器,绑定事件,动画

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

一周学好python_耗时一周整理的Python资料,包含各阶段所需网站、项目,收藏了?慢慢来...

不知怎么的&#xff0c;最近不少关注我的读者都开始私信我怎么学好python&#xff1f;零基础转行是不是合适&#xff0c;还有希望吗&#xff1f;今年30了&#xff0c;还能不能转IT&#xff1f;今天这篇文章&#xff0c;我花了一周的时间搜索、整理、调研、筛选&#xff0c;最后…

python中bool函数的用法_python3实战python函数每日一讲 - bool([x])

bool([x])英文说明&#xff1a;Convert a value to a Boolean, using the standard truth testing procedure. If x is false or omitted, this returns False; otherwise it returns True. bool is also a class, which is a subclass of int. Class bool cannot be subclasse…

c语言程序 强制关机程序,怎样用C语言编写关机程序

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include "windows.h"#pragma comment(lib,"user32.lib")#pragma comment(lib,"advapi32.lib")int main(){HANDLE hToken;LUID luid;BOOL bRaisedFALSE;TOKEN…

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…