谢宾斯基三角形是有好多的小三角形经过多次迭代之后形成的。首先定义一个画板。
//定义一个三角形的类,继承于JFrame public class TriangleFrame extends JFrame { //定义一个函数的入口主函数 public static void main(String[] args) { //实例化一个对象 TriangleFrame Tri = new TriangleFrame(); Tri.showGUI();//调用showGUI函数 } public Graphics g;//定义全局共有变量g // 定义showGUI函数 public void showGUI() { this.setSize(600, 600);//设置大小 this.setTitle("三角形"); this.getContentPane().setBackground(Color.PINK);//设置背景颜色 this.setVisible(true);//设置窗体可见 g=this.getGraphics(); }
设置好之后,由于是继承了面板,所以可以直接调用重绘方法,不用此方法的话画图的时候一闪而过就没有了。
//定义重绘函数 public void paint(Graphics g) { super.paint(g);//调用重绘函数 int x1, x2, x3; int y1, y2, y3; x1 = 250; x2 = 10; x3 = 500; y1 = 100; y2 = 400; y3 = 400; //先画一个三角形 g.drawLine(250, 100, 10, 400); g.drawLine(250, 100, 500, 400); g.drawLine(10, 400, 500, 400); p(x1, y1, x2, y2, x3, y3, 12);// 调用p函数 }
接下来是用于迭代的方法;
// 定义p函数 public void p(int x1, int y1, int x2, int y2, int x3, int y3,int count ) { //设置count小于1时退出递归 if (count <1) {return; } //函数的计算主体 g.setColor(Color.BLUE); g.drawLine(x1, y1, x2, y2); g.drawLine(x1, y1, x3, y3); g.drawLine(x2, y2, x3, y3); //求出递归坐标的位置 int px1 = (x2 - x1) / 2 + x1; int py1 = (y2 - y1) / 2 + y1; int px2 = (x3 - x2) / 2 + x2; int py2 = (y3 - y2) / 2 + y2; int px3 = (x3 - x1) / 2 + x1; int py3 = (y3 - y1) / 2 + y1; count--;//变量自减 // 设置三个不同的递归,参数的不同所以必须得搞三个。 p(px1, py1, x2, y2, px2, py2, count); p(x1, y1, px1, py1, px3, py3, count); p(px3, py3, px2, py2, x3, y3, count); } }
这样一个谢宾斯基三角形就就好啦。看代码不难发现,代码比较简单,关键是过程比较艰苦。
相关推荐
请检查右侧的示例标签(.mlx doc),以获取完整说明。 下载后,在 Matlab 控制台中键入“doc Sierpinski_triangle”或“help Sierpinski_triangle”以获得支持。 对于 2D 点输入,只需用零填充点 Z 坐标(参见...
结果表明:MATLAB对分形图像的处理简单、方便,通过科赫曲线、谢宾斯基填料等有规分形图形分形维数的计算表明该方法计算出的结果准确、可靠。对大气颗粒物的分形维数的计算表明,不同不规则程度的颗粒物有不同的分形...
pre_o_1csdn63m9a1bs0e1rr51niuu33e.a
matlab建立计算力学课程的笔记和文件.zip
FT_Prog_v3.12.38.643--FTD USB 工作模式设定及eprom读写
matlab基于RRT和人工势场法混合算法的路径规划.zip
matlab基于matlab的两步定位软件定义接收机的开源GNSS直接位置估计插件模块.zip
office 2016三和一精简版
文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
麦肯锡咨询顾问必备宝典-时间管理.ppt
文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
麦肯锡顾问的黄金思考方法.pptx
91fdd461elb59a4ce8dfcfc46bc283a7.msi
ansys maxwell
5-5
xx广告促销计划流程实施手册.ppt
仿小米商城微信小程序源码+项目说明.zip
文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
麦肯锡xx客户满意服务.ppt