分形之闵可夫斯基(Minkowski)

与上一篇文章分形之正方形折线相似,闵可夫斯基分形也是分形出正方体,不同之处是它分出了两个正方体。

核心代码:

static void FractalMinkowski(const Vector3& vStart, const Vector3& vEnd, Vector3* pVertices)
{
    Vector3 vSub = vEnd - vStart;
    Yreal len = D3DXVec3Length(&vSub);

    pVertices[0] = vStart;
    pVertices[8] = vEnd;

    pVertices[4] = (vStart + vEnd)*0.5f;

    pVertices[1] = vStart + vSub*0.25f;
    pVertices[7] = vStart + vSub*0.75f;

    Vector3 v(-vSub.y*0.25f, vSub.x*0.25f, 0.0f);

    pVertices[2] = pVertices[1] + v;
    pVertices[3] = pVertices[4] + v;

    pVertices[5] = pVertices[4] - v;
    pVertices[6] = pVertices[7] - v;
}

软件截图:

软件下载地址:http://files.cnblogs.com/WhyEngine/Fractal.7z

时间: 2024-11-05 08:04:34

分形之闵可夫斯基(Minkowski)的相关文章

游戏编程精粹系列书籍目录一览

游戏编程精粹1 第1章 通用编程技术 1.0 神奇的数据驱动设计(Steve Rabin) 3 1.0.1 点子1--基础 3 1.0.2 点子2--最低标准 3 1.0.3 点子3--杜绝硬编码 3 1.0.4 点子4--将控制流写成脚本 4 1.0.5 点子5--什么时候不适合使用脚本? 5 1.0.6 点子6--避免重复数据 5 1.0.7 点子7--开发工具来生成数据 6 1.0.8 结论 6 1.1 面向对象的编程与设计技术(James Boer) 7 1.1.1 代码风格 7 1.1

向量与矩阵范数

范数(norm),是具有"长度"概念的函数.在线性代数.泛函分析及相关的数学领域,范函是一个函数,其为矢量空间内的所有矢量赋予非零的正长度或大小.半范数反而可以为非零的矢量赋予零长度. 举一个简单的例子,在二维的欧氏几何空间 R就可定义欧氏范数.在这个矢量空间中的元素常常在笛卡儿坐标系统中被画成一个从原点出发的带有箭头的有向线段.每一个矢量的欧氏范数就是有向线段的长度. 其中定义范数的矢量空间就是赋范矢量空间.同样,其中定义半范数的矢量空间就是赋半范矢量空间. 向量范数 概念 设函数f

分形的程序实现

近一段时间一直在研究分形,写了几个分形相关的程序,这是其中一个.程序中里面包含近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

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

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

【转】闵可夫斯基距离

本文从公式上表述了欧几里得距离.曼哈顿距离.切比雪夫距离记忆闵可夫斯基距离之间的关系. 一般而言,定义一个距离函数 d(x,y), 需要满足下面几个准则: 1) d(x,x) = 0 // 到自己的距离为0 2) d(x,y) >= 0 // 距离非负 3) d(x,y) = d(y,x) // 对称性: 如果 A 到 B 距离是 a,那么 B 到 A 的距离也应该是 a 4) d(x,k) d(k,y) >= d(x,y) // 三角形法则: (两边之和大于第三边) 闵可夫斯基距离: 闵可夫

分形理论

被誉为大自然的几何学的分形(Fractal)理论,是现代数学的一个新分支,但其本质却是一种新的世界观和方法论.它与动力系统的混沌理论交叉结合,相辅相成.它承认世界的局部可能在一定条件下,在某一方面(形态,结构,信息,功能,时间,能量等)表现出与整体的相似性,它承认空间维数的变化既可以是离散的也可以是连续的,因而拓展了视野. 分形几何的概念是美籍法国数学家曼德布罗(B.B.Mandelbrot)1975年首先提出的,但最早的工作可追朔到1875年,德国数学家维尔斯特拉斯(K.Weierestras

各种距离 欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准欧氏距离、马氏距离、余弦距离、汉明距离、杰拉德距离、相关距离、信息熵

1. 欧氏距离(Euclidean Distance) 欧氏距离是最容易直观理解的距离度量方法,我们小学.初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离. 二维平面上点a(x1,y1)与b(x2,y2)间的欧氏距离: 三维空间点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离: n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的欧氏距离(两个n维向量): Matlab计算欧氏距离: Matlab计算距离使用pdist函数.若X是一个m×n的矩阵,

HIT1946 希尔伯特分形曲线(dfs)

补第二次期末考的题--发现代码细节还需要加强啊--这样一道题一直犯小错误. 题目链接: http://acm.hit.edu.cn/hoj/problem/view?id=1946 题目描述: 希尔伯特分形曲线 Submitted : 53, Accepted : 16 数学家Hilbert曾发现一种十分奇特的曲线.一般的曲线是没有面积的,但他发现的这条曲线却能充满整个空间.Hilbert曲线是由不断的迭代过程形成的.如下图所示,最原始的曲线称为H1,由H1迭代形成H2,再由H2迭代形成H3..

分形之概率学下的green tree

     今天做的是分形之随机概率,可以和以前做的那个抛色子的做法非常相似,抛色子是用随机点数控制图形,今天做的树叶图形只是用概率的做法去控制图形而已,做法是如出一辙的: //图形界面 package tree0618; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.Graphics2D: import javax.swing.JFrame; public