Sierpinski三角

function Sierpinski
%Sierpinski  MATLAB implementation of the  Sierpinski.

shg
clf reset
set(gcf,‘color‘,‘white‘,‘menubar‘,‘none‘, ...
   ‘numbertitle‘,‘off‘,‘name‘,‘Fractal Sierpinski‘)
x = [0; 0];
darkgreen = [0 2/3 0];
plot(x(1),x(2),‘.‘,‘markersize‘,4,‘color‘,darkgreen)
axis([-3 3 -3 3])
axis off
stop = uicontrol(‘style‘,‘toggle‘,‘string‘,‘stop‘, ...
   ‘background‘,‘white‘);
drawnow
hold on

p  = [ 1/3  2/3  1 ];
A = [ 1/2  0; 0  1/2];  
b1 = [0; 0];
b2 = [1/2; 0];
b3 = [1/4; sqrt(3)/4];

cnt = 1;
tic
while ~get(stop,‘value‘)
   r = rand;
   if r < p(1)
      x = A*x + b1;
   elseif r < p(2)
      x = A*x + b2;
   else
       x = A*x + b3;
   end
   plot(x(1),x(2),‘.‘,‘markersize‘,4,‘color‘,darkgreen)
   drawnow
   cnt = cnt + 1;
end
t = toc;
s = sprintf(‘%8.0f points in %6.3f seconds‘,cnt,t);
text(-1.5,-0.5,s,‘fontweight‘,‘bold‘);
set(stop,‘style‘,‘pushbutton‘,‘string‘,‘close‘,‘callback‘,‘close(gcf)‘)
hold off

分形现象在自然界普遍存在。以上MATLAB程序实现了Sierpinski‘s triangle。

按照不同的概率进行不同的仿射变换,最终画出图形。

随着时间的推移、采样点的增加,图形越来越明显。

时间: 2024-09-30 09:42:14

Sierpinski三角的相关文章

Java Chaos Game 噪声游戏两则

Java Chaos Game噪声游戏两则 [简介] 最近一直在读<深奥的简洁>,里面有一章介绍了几种使用噪声产生分形图的方法,感觉很有意思,于是尝试使用计算机模拟了一下,效果还不错(噪声法比传统迭代法在编程上好实现一些,后来发现这类算法还不少,搜索chaos game可以找到更多). 本篇程序源文件及其依赖jar包已经打包,可以到这里GitHub下载. [Sierpinski三角形的噪声产生法] 在这些噪声游戏中,Sierpinski(谢尔宾斯基)三角形的生成规则可谓是最简单的: 1.在平面

LeetCode (13) Pascal&#39;s Triangle (杨辉三角 )

题目描述 Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Return 从第三行开始,每行除了最左边和最右边两个数为1,其他数字都是上一行中相邻两个数字之和.根据上述规则可以写出下面的代码: class Solution { public: vector<vector<int> > generateRow1() { vector<in

杨辉三角

1 package com.llh.demo; 2 3 /** 4 * 杨辉三角 5 * 6 * @author llh 7 * 8 */ 9 public class Test { 10 /* 11 * 杨辉三角 12 */ 13 public static void main(String[] args) { 14 int[] a = new int[11]; 15 int num = 1; 16 // 17 for (int i = 1; i <= 10; i++) { 18 for (i

杨辉三角实例菱形实例

杨辉三角实例 public class Hui { public static void main (String [] args){ int [][] a =new int [10][10]; for(int i=0;i<a.length;i++){ for(int j=0;j<=i;j++){ if(j==0||i==j){ System.out.print(" "+(a[i][j]=1)); }else {a[i][j]=a[i-1][j-1]+a[i-1][j];

13.高斯消去法(2)——三角矩阵

对于矩阵有一类特殊的矩阵,叫做三角矩阵. 这种矩阵如果还是按照定义一个二维数组来对数值进行存储的话,无疑将消耗掉不必要的空间,所以我们采用压缩存储的方式,将矩阵存储在一位数组中. 对于下三角矩阵,如果按照行优先存储,则{a11, a21, a22, a31, a32, a33, a41, a43, a44},一维数组容量为10,即4 * ( 4 + 1) / 2 => n * ( n + 1 ) / 2,aij所在数组下标为:k = i * ( i - 1 ) / 2 + j - 1. 对于上三

js算法集合(二) javascript实现斐波那契数列 (兔子数列) Javascript实现杨辉三角

js算法集合(二)  斐波那契数列.杨辉三角 ★ 上一次我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,这次,我们来对斐波那契数列和杨辉三角进行研究,来加深对Javascript的理解. 一.Javascript实现斐波那契数列 ①要用Javascript实现斐波那契数列,我们首先要了解什么是斐波那契数列:斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为

jQuery 倒三角 正三角

智障啊! 今天脑抽了想写一个jQuery 倒三角锻炼自己,想了半天才有一点头绪. 研究结果如下: <script type="text/javascript"> $(function(){ var str = "*"; //正三角 for(i = 0;i < 5;i++){ for(j=0;j < i;j++){ document.write(str); } document.write("<br>"); }

使用Java打印杨辉三角

package 杨辉三角; import java.util.Scanner; public class 三角 { private static Scanner scn; public static void main(String[] args) { scn = new Scanner(System.in); System.out.println("请输入数据"); int n = scn.nextInt(); //定义一个二维数组 int [][] array = new int

Java的二维数组的应用及杨辉三角的编写

(1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个,即该位置上的元素在该行上最大,在该列上最小(注:一个二维数组也可能没有这样的鞍点). /** * * @author liuhui *@version Java上机实验三 *@time 2016.10.30 */ public class javatest2 { public static int