65.9K
CodeProject 正在变化。 阅读更多。
Home

复杂颜色

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2013年8月16日

CPOL

6分钟阅读

viewsIcon

13584

用分形、粒子绘画和对称绘画让你的世界更加多彩

平台:一体化
类别:娱乐   

编程环境:C#,WPF 

 应用概述

 复杂色彩是一种利用复平面数学绘制和渲染惊人色彩的原理。该应用程序还提供了一个对称的绘图画布,您可以在其中绘制那些令人惊叹的万花筒图画。它采用并行泛洪填充算法,允许您用复杂的颜色填充绘图或其一部分。它还提供了一种纹理修复技术,用于将纹理应用于绘图的一部分。因此,您可以绘制事物并用源自复平面代数的惊人纹理填充它们。它通过提供一种生成粒子图画的方法来增加乐趣,粒子通常用于游戏中的特殊效果。但我调整了一些基本的粒子原理,以创建保持动画效果的粒子图画。

所以:

1. 绘制分形并渲染为预设。

2. 进入分形内部,进行无限缩放(高达 1e29 倍的大小),探索内部分形世界 

3. 在万花筒上使用对称绘图,并用纹理填充各个部分 

4. 使用画布开发粒子图画,以获得出色的动画图画。 

 

更大的画布和处理能力使得一体化平台成为该应用程序唯一可能的设备。

 

渲染   

 有趣的是,该应用程序基于将一个平面转换到另一个平面。因此,您可以绘制多种混合效果。该应用程序最突出的功能之一是在对称性(万花筒)上绘制分形,这是一个甚至没有文本引用的概念。  

 

 

混合复平面变换:真实的树形分形绘制在对称结构上 

 使用自定义并行泛洪填充算法,分形渲染和对称性在运行时被改变。请看下面的图片。实际的分形在渲染后用自定义颜色填充。 

  

如果您看上面的分形图,这些都是经过纹理渲染的。我们计算复杂的下一个坐标并将其与颜色值映射。

如果您看这个提案,核心组件之一是粒子引擎。粒子引擎代表一个绘图单元实体。该应用程序通过实际渲染分形的粒子,为颜色提供了另一个独特属性。结果非常出色,您可以在下面的佛陀分形图中看到。

 

仔细看,您会发现,渲染的不是颜色,而是粒子或独立的像素。这是该应用程序的另一个独特功能。这在数学和实现方面都是一个相当具有挑战性的问题。 

 

 技术概述 

理想情况下,我希望就该主题提供一篇完整详尽的文章,因为到目前为止,应用程序中使用的数学和编码技术本身就很有趣。但两个并行的英特尔竞赛以及完成应用程序、提案和设计的压力已将一篇完整的文章排到了队列后面。

尽管如此,以下是关于该应用程序背后确切机制的简要概述。分形是通过具有边界条件和停止条件的递归过程生成的合成图画。停止条件可以是迭代次数或达到边界条件。分形在其基本形式中代表一个方程:

Z(n)=f(Z(n-1))+C

其中 Z 的形式为 X+jY 

您可以从以下链接中获得一些关于分形的好见解:

http://en.wikipedia.org/wiki/Mandelbrot_set

通过适当改变 C 的值和 Z 的初始值,可以绘制出不同的形状。然而,如果分形不进行渲染,那它就没什么乐趣了。渲染是指用不同的颜色组合和深度进行显示。深度是什么意思?假设您绘制了一个朱利亚集。现在您想通过不同的纹理和颜色来可视化它。由于分形是通过多次递归生成的,您不能每次都使用递归来生成分形。一旦创建,分形就应该以不同的组合方式显示。因此,我们定义了一个复色平面。该平面映射了数百万种颜色。一旦分形生成,它基本上就是一个点的数组。我们不断地用不同的复色平面渲染这些点。

 

当用户通过双击选择分形的某个区域时,将获得该区域内的一组点。这些点被用作初始条件,并进行进一步的递归。这个过程将该区域的分形放大。由于分形是连续的,并且屏幕上只能显示固定数量的像素,因此缩放没有限制。许多在线分形教程和代码为您提供了高达 100 倍的缩放选项。但我们在这里实现的是 10^29 倍的缩放。因此,您可以真正进入分形并无限深入地探索分形的内部世界。这是该应用程序最令人惊叹的功能。  

 看看下面的图,了解一下在基本朱利亚集中的一次遍历。 

  

正如我们所讨论的,根据 z 值,会拾取一个颜色分量,然后用该颜色绘制映射到 z 值的像素。这就是所有分形的工作方式。但我们对它做了一些调整。我们生成了一个粒子引擎,其有一些不同于您通常的基于发射器的引擎的弯曲。我们假设粒子是二维的,并将粒子放置在像素的位置上。而不是像素,粒子被应用颜色,然后渲染到场景中。

现在,如果您想要更具尘土飞扬的外观,就像佛陀分形图一样,只需减少粒子的数量,粒子之间的间隙就会给您带来独特的粒子分形图的外观和感觉。

 当您想在这些粒子上进行自定义绘制时,粒子会获得生命周期、路径、速度和方向。为了控制堆栈溢出,离开视口的粒子会返回。与其使用颜色块,不如在粒子上使用图像,您就可以获得那些令人惊叹的图画。 因此,我们可以实现闪烁的星星、粒子植物等效果。 这是通过结合粒子着色和粒子上的精灵绘图生成的一个此类图画。 

 

目标用户

 每个人都热爱艺术和色彩。但不是每个人都有艺术天赋去画出令人赏心悦目的东西。人们更倾向于观看那些好的绘画。复杂色彩是一款独特的、大型画布的超级渲染软件,拥有独特的引擎,允许用户生成分形、进入分形内部、渲染、改变颜色、进行对称绘图、生成粒子绘图。有趣的是,由于基本渲染点是由速度和生命周期辅助的粒子,所以每个绘图都可以动画化。您可以将这些动画绘图保存为 GIF 格式到您的图库,共享、打印、渲染、作为画廊播放。

由于一体化平台是为“朋友和家人乐趣”而设计的,因此该应用程序的设计宗旨是让许多用户能够同时使用画布。使用多点触控来旋转、缩放、改变颜色、制作动画等等。

 

我的专业成就

=> 英特尔 AppInnovation Contest 2012 决赛选手 

=> Codeproject.com 英特尔超极本文章竞赛二等奖 

=> 英特尔感知计算挑战赛第一阶段三项二等奖(FaceSec、Gescards、Gestroids) 

=> 感知计算第二阶段决赛选手 

=> 英特尔 AppUp 应用:http://www.appup.com/developer/integrated-ideas-consultancy-services 

 

 

  

© . All rights reserved.