尧图网络 高端网站定制 · 原创设计
免费咨询热线
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/8/24 2:12:43
学生日常行为评分管理系统

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

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

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

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

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

📅 2026/8/24 2:12:43
MORE NEWS

更多资讯

📰

CANN/GE异步运行图API

RunGraphAsync 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow …

📰

MATLAB中LS与MMSE信道估计仿真:从导频插入到性能对比

简介:面向无线通信与信号处理领域的MATLAB代码包,围绕最小二乘(LS)和最小均方误差(MMSE)两种经典信道估计算法,提供可运行的仿真脚本,比较不同信噪比下的均方误差、误符号率与误码率…

📰

基于 tRPC 的服务化架构:用自定义路由 Link 将一个后端拆分为多服务部署

基于 tRPC 的服务化架构:用自定义路由 Link 将一个后端拆分为多服务部署 【免费下载链接】trpc 🧙‍♀️ Move Fast and Break Nothing. End-to-end typesafe APIs made easy. 项目地址: https://gitcode.com/GitHub_Trending/tr/trpc 导读 本文…

📰

Mojo 上手教程代码详解:从 List 到参数化 Grid 构建 Conway 生命游戏

Mojo 上手教程代码详解:从 List 到参数化 Grid 构建 Conway 生命游戏 【免费下载链接】mojo The Modular Platform (includes MAX & Mojo) 项目地址: https://gitcode.com/GitHub_Trending/mo/mojo 本文基于 Mojo 官方手册的"Get started with Mojo…

📰

前端工程师的AI Agent实战:FastAPI+LangChain最小闭环

1. 这不是转行,是前端工程师的“能力升维”——从写页面到调度智能体我带过6个前端团队,面试过300候选人,最近半年明显感觉到一个变化:问“你最近在学什么”,回答里出现“LangChain”“Agent”“FastAPI”的比例&#…

📰

单例模式全解析:饿汉与懒汉的线程安全工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

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

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

📞 💬