谢宾斯基三角形是有好多的小三角形经过多次迭代之后形成的。首先定义一个画板。
//定义一个三角形的类,继承于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 坐标(参见...
例如,谢宾斯基三角形中的数列问题,需要观察图形的结构并找出其内在的规律,从而得出数列的通项公式。而用围棋子排列“T”字形的游戏,可以引导学生发现数列的等差特性,即每一项与前一项之差是一个常数。 通过...
4. 谢宾斯基三角形着色三角形个数的通项公式为a_n = 3^(n-1),其图象是点(x, y)满足x = 1 - (1/3)^n,y = (1/3)^n的曲线,而数列的图像是这些点的集合。 通过上述内容,我们可以看到数列在高中数学中的重要性,无论...
谢宾斯基三角形中的黑色三角形个数构成的数列就是一个实例,这需要学生具备从几何图形中抽象出数学规律的技能。同样,由点的个数组成的数列也提供了类似的挑战,要求学生能从视觉模式中提炼出数列的通项公式或递推...
3. **数列与几何图形**:第三题结合了数列的知识和谢宾斯基三角形,谢宾斯基三角形是一种分形图形,通过递归操作得到。题中要求找到数列的通项公式,这需要对数列的构造规律进行分析。 4. **双曲线方程**:第四题...
谢宾斯基三角是一个经典的分形例子,由波兰数学家瓦茨瓦夫·谢宾斯基提出。它的构造基于以下步骤: 1. 开始时,我们有一个等边三角形。 2. 将这个三角形分成四个相同的小三角形,中间的小三角形丢弃,留下三个角上...
结果表明:MATLAB对分形图像的处理简单、方便,通过科赫曲线、谢宾斯基填料等有规分形图形分形维数的计算表明该方法计算出的结果准确、可靠。对大气颗粒物的分形维数的计算表明,不同不规则程度的颗粒物有不同的分形...
此外,课程还引入了谢宾斯基(Sierpinski)三角形,这是一个著名的分形几何图形。在这一部分,学生被要求根据图形中着色三角形的个数找出数列的通项公式,这是一个典型的数列与几何图形结合的问题。 讲授新课部分...
对于分形维数的计算,MATLAB不仅适用于处理大气颗粒物图像,还可以用来测试科赫曲线、谢宾斯基填料等规则分形图形,从而验证计算结果的准确性和可靠性。 此外,不同不规则程度的颗粒物对应不同的分形维数,通过颗粒...
【中国传统礼仪文化知识竞赛试题解析】 1. 趋礼:在古代,"趋礼"是一种表示尊重的行为,指的是地位低的人在地位高的人面前经过时,应当低头弯腰,小步快走以示敬意。选项A、B、C正确,而D则错误,因为地位高的人...