尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
数学艺术图案画-曼陀罗(53)
数学艺术图案画曼陀罗53本系列曼陀罗图案创制一直以来都是我的最爱。我总是被色彩绚烂和美轮美奂的图案感动。在前些时候完成了曼陀罗图案系列 5 轮既定目标 图1至 图 50。本博文开始提供的是第 6 集系列曼陀罗图案 图51至图60。再次把美好的东西贡献给大家希望大家喜欢。曼陀罗图案画是一类经典的、具有长久历史的艺术形式。在多个种族文化和宗教传统中占据很特殊地位。且不谈宗教方面其图案在美学和艺术方面就有那无与伦比的地位。图案通常以圆形呈现它那几何图形的集合图案的对称性、复杂性以及色彩的绚烂和变化多端常能激起人们对美的憧憬和向往。本博文提供了最为简单和直观的数学艺术绘图方法一块画布 Canvas cs.Draw...一个调色板设置预设调色板 getcolor ( )加色彩变化 SetColor (180, r1, g1k*cn, b1)一个绘图函数 mandalaXX ( ) { ······ }几个简单的绘图语句canvas.DrawOval (X, Y, La, Lb, R) 画椭圆canvas.DrawCircle (X, Y, R) 画圆形绘出一组色彩缤纷美轮美奂的图案。颜色设置原预设置六个调色板色调取色彩亮度及鲜艳图案绘出时加色彩变化。今有修正增加一色调黄色yellow 。图案的绘制要点是以椭圆的长短轴变化半径变化以及中心距的变化再加上色彩的变化来完成图案的复杂度图案图形的艺术性。各参数的变化代码中有注释。本设计的重点图案是即时逐线逐帧动画展示的。本人感受到屏幕的美感数学绘画的艺术感简直美极了。本博文是曼陀罗图案系列文档今后会陆续推出其他图样。谨以此方法贡献给喜欢美的朋友。本程序是用简单的C语言在安卓手机上编写的。界面是手机屏幕方式。总结一下图形和色彩变化的要点一是图形变化图形输出中心距L变化加微调距离(L40)叠加图形以及椭圆的长短轴尺寸比例的变化循环套叠画出图形。二是色彩变化预设置调色板色调模型循环绘图时调用k值微调RGB颜色值来变化输出图形色彩。细心的读者对比一下几篇博文就能体会此中奥妙。下面是源码//设置全局变量或局部变量float pi3.1415926535;string s,ss,ss1,ss2,ss3; //print text strinfloat sx,sy, px,py, dx,dy; //center pointfloat sx1,sy1,sx2,sy2,sx3,sy3,sx4,sy4; //绘图float a,a1,a2, L,L1,d,r; //sin (a), d degree, Lengthdouble sn; //mode numberint round; //set roundint r1,g1,b1; //16m 全色调色板 A, R, G, B)double Rn; //random numberint i,j,n,t,k, kn; //t times, n numbeint cn; //设置调色板色彩变化系数预设置调色板getcolor (){//** 此是新修正的调色板//** 原预设置调色板 (六个色调新增yellow// 1 red 2 pink 3 blue 4 purple// 5 green 6 orange 7 yellow// cn 色调变化系数 cn 5 to 20// cn小 红色调 大 蓝绿色调Rnrandom()*71; //colorkn(int)Rn;if (kn1){r1250; g1-120; b10; cn5; } //redif (kn2){r1250; g1-50; b1250; cn10; } //pinkif (kn3){r10; g10; b1250; cn15; } //blueif (kn4){r1160; g10; b1250; cn20; } //purpleif (kn5){r10; g1200; b1100; cn15; }//greenif (kn6){r1250;g130;b1100; cn15; } //orangeif (kn7){r1250; g1250; b10; cn10; } //yellow//** return color (A,R,G,B ) r1, g1, b1}//getcolor ()图例Times 8 是一次循环展示的图案Times ( 1 - 7 ) 是动画展示的中间过程图案。图案源码如下//** 图案绘出pi/8 八角形 i*45度pi/6 六角形 60度//** pi/4 十字形 90度pi/5 五星形 72度pi/12 十二角 30度 pi/16 十六角 22.5度//** k * n 椭圆比k*1.5可 set 0.5 2.5//**图案动画展示图案和色彩多次叠加每轮次八步产生8个不同色彩的图案2圈次可展示出16个图案//** 图案采用多层图形多层色彩套叠设计方法//** 外圈二三层中心区二三层多层多彩套图形设计mandala53 (){//** init round, n, center point px, pyround2; n0; //** 设置动画演示次数圈数----px360; py350; //** 图案输出中心点//** 重绘图案redraw53:cs.SetFillMode (1);//0不填色1填色cs.SetColor (255,0,0,0);cs.DrawRect (0,0,720,720); //页面重置nn1; //计数圈数//** 图案绘出有 8 步图形颜色变化for (t1; t8; t){cs.SetFillMode (1); //0不填色1填色cs.SetColor (255,0,0,0);cs.DrawRect(20,660,700,710); //renew times//** 设置颜色取得颜色值getcolor ();cs.SetColor (255, r1, g1200, b1);//** 屏幕打印状态提示次数 t圈数 nsintToString (t);ss3Times s;sintToString (n);ss1Round s;cs.SetTextSize (28);cs.DrawText (曼陀罗图案 (53) ,50,40);cs.DrawText (ss3,90,680);cs.DrawText (ss1,240,680);cs.Update ();//** 图形区域框线cs.SetFillMode (0);//0不填色1填色cs.SetColor (255,250,250,0);cs.DrawRect(50,50,670,650); //框线cs.Update ();//****** figure 1 ****** 图形叠加设计//** 设置颜色取得颜色值getcolor ();for(i0;i12;i){a2*pi/12*i ; L160;sx1(float)(L*cos(a))px;sy1(float)(L*sin(a))py;for (k10;k30;k){// ** 依取得颜色 颜色变化 a180 半透明cs.SetColor (180,r1, g1k*cn, b1);cs.DrawOval (sx1,sy1, 25, k*1.2, i*30);cs.DrawCircle (sx1,sy1, k/3);} }//****** figure 2 ****** 图形叠加设计//** 设置颜色取得颜色值getcolor ();for(i0;i12;i){a2*pi/12*ipi/12 ; L150;sx1(float)(L*sin(a))px;sy1(float)(-L*cos(a))py;L125;sx2(float)(L*sin(a))px;sy2(float)(-L*cos(a))py;for (k8;k30;k){//** 依取得颜色 颜色变化 a180 半透明cs.SetColor (180,r1, g1k*cn, b1);cs.DrawOval (sx1,sy1,15,k*1.5,i*3015);cs.DrawCircle (sx1,sy1, k/5);cs.DrawCircle (sx2,sy2, k/1.2);} }//****** center figure 1 ********getcolor ();for(i0;i12; i){a2*pi/6*i ; L90;sx1(float)(L*cos(a))px;sy1(float)(L*sin(a))py;a2*pi/12*i ; L110;sx2(float)(L*sin(a))px;sy2(float)(-L*cos(a))py;for (k10;k30; k){//** 依取得颜色 颜色变化 a180 半透明cs.SetColor (180,r1, g1k*cn, b1);cs.DrawOval (sx1,sy1,20,k*1.5, i*60);cs.DrawOval (sx2,sy2,15,k*1.2, i*30);cs.DrawCircle (sx2,sy2, k/5);} }//****** center figure 2 ********getcolor ();for(i0;i6; i){a2*pi/6*i ; L40;sx1(float)(L*cos(a))px;sy1(float)(L*sin(a))py;for (k8;k30; k){//** 依取得颜色 颜色变化 a180 半透明cs.SetColor (180,r1, g1k*cn, b1);cs.DrawOval (sx1,sy1,18,k*1.8, i*60);cs.DrawCircle (sx1,sy1, k/5);} }cs.Update (); //即时动画演示} //next tsleep (1000); //next round delayif (nround) goto redraw53; //下一圈}//test53//** End ****
RELATED

相关推荐

基于深度学习的血管图像分割方法研究

基于深度学习的血管图像分割方法研究

第1章 绪 论 1.1 项目背景及意义 血管图像分割属于医学图像处理领域的一个难题,对于血管疾病的诊断、治疗规划以及手术导航等临床工作具有极其重要的意义。医学成像技术的迅速发展,计算机断层扫描(CT)、磁共振成像(…

📅 2026/10/7 18:57:41
学生日常行为评分管理系统

学生日常行为评分管理系统

第1章 绪论1.1 课题背景教育信息化迅速发展的时候,学生日常行为评分数据的分析已经成为提高教学质量的主要途径,传统的教学评价方式大都依靠纸质记录或者简单的电子表格,数据处理与分析效率低,不能满足现代教育管理的要求&#…

📅 2026/9/9 22:51:32
Cloudflare CDN与宝塔面板深度集成实战指南

Cloudflare CDN与宝塔面板深度集成实战指南

1. 这不是“点几下就完事”的CDN教程,而是我用Cloudflare撑起37个生产站点后总结的实战手册你搜“Cloudflare CDN 部署教程”,首页跳出来的大多是“注册→添加域名→切换DNS→完成”四步截图。我试过——照着做,网站能上,但第二天…

📅 2026/10/8 22:53:15
MORE NEWS

更多资讯

📰

快速沃尔什变换与矩阵快速幂在动态规划中的应用

1. 题目背景与核心挑战解析这道来自Codeforces 453D的题目《Little Pony and Elements of Harmony》乍看像是普通的动态规划题,但实际上融合了快速沃尔什变换(FWT)和矩阵快速幂两大高阶算法。题目设定基于动画《My Little Pony》中的和谐元素…

📰

Fine语言max函数解析:从基础语法到高阶优化

1. Fine语言中的max函数解析:从基础到高阶应用在数据处理和算法实现中,求取一组变量的最大值是最基础却至关重要的操作。Fine语言作为一门面向数据处理的领域专用语言,其max(var1,var2,…,varn)函数的设计既遵循数学直觉又融合了工程实践需求…

📰

终端DLP透明加密机制与文件批量还原:进程白名单和扩展名矩阵

简介:围绕易赛通数据泄露防护客户端加密文件的还原问题,这份文档提供一套可借鉴的解密思路,面向需处理被加密办公文档、又受终端管控限制的技术人员与安全爱好者。文档为单个docx文件,压缩包约29KB,篇幅紧凑但信息密度…

📰

impeccable:AI coding agents 前端设计质量保障工具链

1. 从“impeccable”说起:一个被低估的前端质量命题第一次看到“impeccable”这个词被拿来命名一个前端项目,我的反应是:这名字起得挺狂。impeccable,无瑕的、无可挑剔的。在前端圈子里混久了的人都知道,前端界面要做到…

📰

C#编程入门主线:从环境项目结构到类型系统与异步避坑

简介:《C# 玩家指南》第三版PDF面向零基础编程新手及希望系统补齐C#知识体系的自学者,围绕C#语言与Visual Studio 2017的使用展开,帮助读者从编写第一个程序逐步过渡到面向对象与高级主题。全书按入门、基础、面向对象、高级主题、工具与实战…

📰

分清三种ECC:P384证书、SAP LSMW迁移与开源算法库

刚接触"ECC"这个缩写时,我一度以为搜索引擎抽了风。配置服务器证书时见到的Trustwave ECC P384,和同事嘴里正忙着的SAP ECC LSMW,长得完全一样,却是八竿子打不着的两套东西。再往后翻,GitHub上还有一个叫aff…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬