Sierpinski三角形

转载请标明地址:http://www.cnblogs.com/wangmengmeng/

效果图:

通项公式:An=3的N-1次方

源代码:

 1 #include <graphics.h>
 2 #include <conio.h>
 3 #include <time.h>
 4
 5 void main()
 6 {
 7     srand((unsigned)time(NULL));                        // 设置随机种子
 8     POINT P[3] = {{320, 50}, {120, 400}, {520, 400}};    // 设定三角形的三个顶点
 9     POINT p = {rand() % 640, rand() % 480};                // 随机产生当前点
10
11     // 初始化图形模式
12     initgraph(640, 480);
13
14     setbkcolor(WHITE);
15     cleardevice();
16
17     // 绘制三万个点
18     int n;
19     for(int i = 0; i <= 30000; i++)
20     {
21         n = rand() % 3;
22         p.x = (p.x + P[n].x) / 2;
23         p.y = (p.y + P[n].y) / 2;
24         putpixel(p.x, p.y, GREEN);
25     }
26
27     // 按任意键退出
28     getch();
29     closegraph();
30 }
时间: 2024-10-25 04:11:57

Sierpinski三角形的相关文章

分形之谢尔宾斯基(Sierpinski)三角形

谢尔宾斯基三角形(英语:Sierpinski triangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集.也有的资料将其称之为谢尔宾斯基坟垛. 其生成过程为: 取一个实心的三角形.(多数使用等边三角形) 沿三边中点的连线,将它分成四个小三角形. 去掉中间的那一个小三角形. 对其余三个小三角形重复1. 核心代码: static void SierpinskiTriangle(const Vector3& v1, const Vector3& v2, cons

混沌分形之谢尔宾斯基(Sierpinski)

本文以使用混沌方法生成若干种谢尔宾斯基相关的分形图形. (1)谢尔宾斯基三角形 给三角形的3个顶点,和一个当前点,然后以以下的方式进行迭代处理: a.随机选择三角形的某一个顶点,计算出它与当前点的中点位置: b.将计算出的中点做为当前点,再重新执行操作a 相关代码如下: class SierpinskiTriangle : public FractalEquation { public: SierpinskiTriangle() { m_StartX = 0.0f; m_StartY = 0.0

BZOJ1258 [CQOI2007]三角形

Description 画一个等边三角形,把三边的中点连接起来,得到四个三角形,把它们称为T1,T2,T3,T4,如图1.把前三个三角形也这样划分,得到12个更小的三角形:T11,T12,T13,T14,T21,T22,T23,T24,T31,T32,T33,T34,如图2.把编号以1,2,3结尾的三角形又继续划分-最后得到的分形称为Sierpinski三角形. 图1. 图2. 如果B不包含A,且A的某一条完整的边是B的某条边的一部分,则我们说A靠在B的边上.例如T12靠在T24和T4上,但不靠

【模拟】【CQOI 2007】【bzoj 1258】三角形tri

1258: [CQOI2007]三角形tri Time Limit: 5 Sec Memory Limit: 162 MB Submit: 276 Solved: 160 Description 画一个等边三角形,把三边的中点连接起来,得到四个三角形,把它们称为T1,T2,T3,T4,如图1.把前三个三角形也这样划分,得到12个更小的三角形:T11,T12,T13,T14,T21,T22,T23,T24,T31,T32,T33,T34,如图2. 把编号以1,2,3结尾的三角形又继续划分-最后得到

谢宾斯基三角形的几种生成方法

简介 谢宾斯基三角形(Sierpinski triangle)是一种分形,由波兰数学家谢宾斯基在1915年提出.它是一种自相似集. 几种生成方法 方法一:去掉中心 取一个实心的三角形(多数用等边三角形) 连接三边中点,将它们分成4个小三角形 将正中间的三角形挖空 对其余三个小三角形重复操作1 取一个正方形或其它图形开始,用类似的方法,形状也和谢宾斯基三角形相似,例如: 取一个实心正方形 将它分成3个“品”字形的小正方形 将其余部分“挖空” 重复步骤1 方法二:Chaos Game 任取平面上三点

分形的程序实现

近一段时间一直在研究分形,写了几个分形相关的程序,这是其中一个.程序中里面包含近20种分形图形的生成算法. (1)科赫(Koch)雪花 (2)列维(levy)曲线 (3)龙形曲线(Dragon Curve) (4)C折线 (5)谢尔宾斯基(Sierpinski)三角形 (6)谢尔宾斯基(Sierpinski)地毯 (7)谢尔宾斯基(Sierpinski)四面体 (8)拆分三角形 (9)分形树(Tree) (10)分形二叉树(Binary Tree) (11)希尔伯特-皮亚诺(Hilbert-Pe

简要概述元胞自动机及其应用

谈一些自己的所学,有错误请指正. 元胞自动机( Cellular Automata) 是 20 世纪 50 年代初由计算机之父冯·诺依曼( J. von Neumann) 为了模拟生命系统所具有的自复制功能而提出来的.此后,史蒂芬·沃尔夫勒姆( Stephen Wolfram) 对元胞自动机理论进行了深入的研究,例如,他对一维初等元胞机全部 256 种规则所产生的模型进行了深入研究,并将元胞自动机分为平稳型.周期型.混沌型和复杂型 4 种类型. 元胞自动机采用离散的空间布局和离散的时间间隔,将元

Java Chaos Game 噪声游戏两则

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

18个分形图形的GIF动画演示

这里提供18个几何线段分形的GIF动画图像.图形颜色是白色,背景色为黑色,使用最基本的黑与白以表现分形图形.对分形几何有兴趣的人可以看下.我在写程序时基本是参考<分形算法与程序设计_Visual C++实现>这本书的光盘代码.几乎每一种分形算法我都写了单独的文章介绍,可以通过链接查看. (1)科赫(Koch)雪花 (2)列维(levy)曲线 (3)龙形曲线(Dragon Curve) (4)C折线 (5)谢尔宾斯基(Sierpinski)三角形 (6)谢尔宾斯基(Sierpinski)地毯 (