万花筒画图应用是一个创新的工具,它不仅能够作为冥想的辅助,也能为用户带来无目的的娱乐。利用超极本和Windows 8的特性,如手势、触摸、加速度计、陀螺仪和环境光传感器,用户可以增强应用的互动性,并且绘制出美丽的图案。
全新的Metro风格磁贴界面,支持创建令人惊叹的对称图案和图画。
支持Windows 8的Snap视图、Fill视图和Full视图。
使用触摸进行绘制,手势进行放大和缩小。
利用加速度计和陀螺仪进行时间线导航。
环境光传感器用于背景设置和应用内的屏幕保护程序。
完全兼容鼠标和键盘。
能够通过Skydrive、Facebook、Twitter等分享创作。
保存图片到图片库,加载不同的背景。
万花筒画图应用(也称为5分钟万花筒)是一个简单的应用,它允许创建无限数量的万花筒图案。
基于管状的万花筒是在1816年由苏格兰出生的大卫·布鲁斯特爵士(一位科学家和发明家)发明的。他从希腊语中选择了“kalos”(美丽)、“eidos”(形式)和“scopes”(观察者)这几个词来命名他的发明,简而言之,万花筒就是“美丽的形式观察者”。
万花筒是一种迷人的装置,它的迷人之处来自于对称和多彩的设计,这些设计来自于包含彩色玻璃碎片和镜子的管子旋转时产生的效果。
这个应用被创建出来就是为了揭示这种对称性。这个应用绘制出无尽的对称和多彩的设计。
目前,这个应用将其绘图区域划分为15个象限。在第一个象限中随机定位并绘制彩色线条。通过将那个象限的线条反射到其他14个象限中来实现对称。
应用的主屏幕被划分为14个象限。
万花筒只需要一个类,一个包含构造函数和Paint()方法的类。
这个应用广泛使用了循环,因为新的形状不断地出现在万花筒的绘制屏幕上。在这个应用中,屏幕被划分为15个三角形,它们共享屏幕中心的一个公共点。最终的划分看起来有点像英国国旗,有十五个三角形。在十五个三角形中的每一个绘制的对象,也会在其他十四个三角形中以透视的方式绘制,即翻转、旋转和/或镜像。
对于每次迭代A,用户选择的颜色被选中;然后随机选择两对坐标。对于每次子迭代B,检查随机点,如果它们位于三角形之外,那么再次选择这对坐标,直到它们都位于三角形内。迭代B结束。现在,随机选择两个“步长”,这些数字位于0和4之间。对于40次迭代C,第一对之前选择的坐标不断通过step1(x和y)递增,对于第二对使用step2也是如此。迭代C结束。在50次迭代A、B和C之后,屏幕从左到右滑动,算法重新开始。
在30秒内完成绘制。
首先随机选择三角形的两个顶点。将称第一个三个顶点为 (x1, y1) 和 (x2, y2)。
这是“父”点。所有反射的版本都被称为“子”。其他位置的子点计算起来相当容易。只需取每个(x,y)坐标,并否定它们,或者以所有可能的方式洗牌:
(x,y),
(-x,y),
(x,-y),
(-x,-y),
(y,x),
(-y,x),
(y,-x),
(-y,-x).
这产生了万花筒对称性。为了确保最初选择的三角形的随机点落在平面的三角形区域内,实际上在(x,y)对中随机选择的“x”大于“y”时交换“x”和“y”。伪代码显示了如何做到这一点。
DO FOR i = 1 to 15
x1 = random; y1 = random
x2 = random; y2 = random
x3 = random; y3 = random
/*
将初始图案限制在右下角象限 */
if ( x1 > y1 ) then (save=x1; x1=y1; y1=save;)
if ( x2 > y2 ) then (save=x2; x2=y2; y2=save;)
if ( x3 > y3 ) then (save=x3; x3=y3; y3=save;)
DrawTriangleAt(x1,y1,x2,y2,x3,y3)
/*
创建7个反射图像 /
DO FOR j = 1 to 7
翻转 (x,y) 点如文本所述
DrawTriangleAt (x1,y1,x2,y2,x3,y3)
END
END
通过摇动屏幕来重新绘制并改变颜色,屏幕会被清除。