数学艺术图案画-曼陀罗单色版(1)

数学艺术图案画-曼陀罗单色版(1)

曼陀罗图案画是一类经典的、具有长久历史的艺术形式。在多个种族文化和宗教传统中占据很特殊地位。

且不谈宗教方面,其图案在美学和艺术方面,就有那无与伦比的地位。图案通常以圆形呈现,它那几何图形的集合,图案的对称性、复杂性以及色彩的绚烂和变化多端,常能激起人们对美的憧憬和向往。

//** 图案绘出,pi/8 八角形 i*45度,pi/6 六角形 60度

//** k * n =椭圆比,k*1.5,可 set 0.5 >>> 2.5

//** 图案展示:图案和色彩 8次叠加,5圈展示5个图案

//** 图案采用多层图形多层色彩套叠设计方法

//** k 参数控制图形线条疏密和图形色彩变化:

if (k-k/3*3==0){ drawOval( ) ...... }

//** 设置颜色,取得颜色值 getcolor ();

//** 依取得颜色 >>> 颜色变化 a=150 半透明

cs.SetColor (150,r1+10,g1+k*15, 250-b1);

彩色版的曼陀罗图案的色彩设置可参阅我在本站发布的几个系列的博文。

本次推出几个黑白版,或是单色版的。线条绘制的图案也很有艺术性。

下面是源码和图例:

mandala16 (){

//** init round, n, center point px, py

px=360; py=360; //** 图案输出中心点

//** 重绘图案

//redraw16:

cs.SetFillMode (1);//0不填色,1填色

cs.SetColor (255,0,0,0);

cs.DrawRect (0,0,720,720); //页面重置

//** 设置颜色,取得颜色值 // getcolor ();

cs.SetColor (255,250,250,0);

//** 屏幕打印状态提示:

cs.SetTextSize (28);

cs.DrawText ("曼陀罗图案 (16) ",50,40);

ss=" 曼陀罗图案(16)单色版 ";

cs.DrawText (ss,50,680);

cs.Update ();

//** 图形区域框线

cs.SetFillMode (0);//0不填色,1填色

cs.DrawRect(50,50,670,650); //框线

cs.Update ();

//****** figure 1 ****** 图形叠加设计

for(i=0;i<12;i++){

a=2*pi/12*i ; L=150;

sx1=(float)(L*sin(a))+px;

sy1=(float)(-L*cos(a))+py;

sx2=(float)(L*sin(a))+px;

sy2=(float)(-L*cos(a))+py;

for (k=10;k<30;k++){

if (k-k/2*2==0){

cs.DrawOval (sx1,sy1,25,k*1.2,i*30);

cs.DrawCircle (sx1,sy1, k/3);

} } }

//****** figure 2 ****** 图形叠加设计

for(i=0;i<12;i++){

a=2*pi/12*i+pi/12 ; L=110;

sx1=(float)(L*sin(a))+px;

sy1=(float)(-L*cos(a))+py;

sx2=(float)(L*sin(a))+px;

sy2=(float)(-L*cos(a))+py;

for (k=10;k<40;k++){

if (k-k/2*2==0){

cs.DrawOval (sx1,sy1,30,k*1.5, i*30+15);

} } }

//****** figure 3 **** center figure

for(i=0;i<6;i++){

a=2*pi/6*i+pi/6 ; L=110;

sx1=(float)(L*sin(a))+px;

sy1=(float)(-L*cos(a))+py;

for (k=10;k<40;k++){

if (k-k/2*2==0){

cs.DrawOval (sx1,sy1, 30, k*1.2, i*60+30);

cs.DrawCircle (sx1, sy1, k/2);

} } }

//****** figure 4 **** center figure

for(i=0;i<6;i++){

a=2*pi/6*i ; L=20;

sx1=(float)(L*sin(a))+px;

sy1=(float)(-L*cos(a))+py;

a=2*pi/6*i+pi/6 ; L=60;

sx2=(float)(L*sin(a))+px;

sy2=(float)(-L*cos(a))+py;

for (k=10;k<30;k++){

if (k-k/2*2==0){

cs.DrawOval (sx1,sy1, 15, k*1.5, i*60);

cs.DrawOval (sx2,sy2, 20, k*0.8, i*60+30);

cs.DrawCircle (px, py, k/2);

} } }

cs.Update ();

}//test16

mandala13 (){

//** init round, n, center point px, py

px=360; py=360; //** 图案输出中心点

//** 重绘图案

//redraw13:

cs.SetFillMode (1);//0不填色,1填色

cs.SetColor (255,0,0,0);

cs.DrawRect (0,0,720,720); //页面重置

//** 设置颜色,取得颜色值 getcolor ();

cs.SetColor (255,250,250,250);

//** 屏幕打印状态提示:

cs.SetTextSize (28);

cs.DrawText ("曼陀罗图案 (13) ",50,40);

ss=" 曼陀罗图案(13)单色版 ";

cs.DrawText (ss,50,680);

cs.Update ();

//** 图形区域框线

cs.SetFillMode (0);//0不填色,1填色

cs.DrawRect(50,50,670,650); //框线

cs.Update ();

//****** figure 1 ****** 图形叠加设计

for(i=0;i<8;i++){ // pi/8 十字形 i*45 度

a=2*pi/8*i+pi/8 ; L=140;

sx1=(float)(L*sin(a))+px;

sy1=(float)(-L*cos(a))+py;

L=100;

sx2=(float)(L*sin(a))+px;

sy2=(float)(-L*cos(a))+py;

for (k=10;k<40;k++){

if (k-k/2*2==0){

cs.DrawOval (sx1,sy1,50,k*1.5,i*45+22.5);

cs.DrawCircle (sx1,sy1, k/3);

cs.DrawOval (sx2,sy2,30,k*1.2,i*45+22.5);

} } }

//****** figure 2 ****** 图形叠加设计

for(i=0;i<8;i++){

a=2*pi/8*i ; L=80;

sx1=(float)(L*sin(a))+px;

sy1=(float)(-L*cos(a))+py;

L=160;

sx2=(float)(L*sin(a))+px;

sy2=(float)(-L*cos(a))+py;

for (k=10;k<40;k++){

if (k-k/2*2==0){

cs.DrawOval (sx1,sy1,30,k*1.5,i*45);

cs.DrawCircle (sx2,sy2, k/2);

} } }

//****** figure 3 **** center figure

for(i=0;i<8;i++){

a=2*pi/8*i ; L=30;

sx1=(float)(L*sin(a))+px;

sy1=(float)(-L*cos(a))+py;

for (k=10;k<40;k++){

if (k-k/5*5==0){

cs.DrawOval (sx1,sy1, 15, k*1.8, i*45);

cs.DrawCircle (px,py, k/3);

} } }

cs.Update ();

}//test13 ()

相关推荐
05候补工程师9 小时前
【考研英语一·翻译专攻】长难句翻译的“分治策略”:从底层拆分到逻辑重构(1997-2010真题高频陷阱与红笔纠偏)
经验分享·笔记·考研·重构
极地星光9 小时前
源码依赖 vs 预编译二进制包:C/C++ 项目依赖管理决策指南
c语言·开发语言·c++
Dlrb12119 小时前
C语言-Linux系统下的俄罗斯方块实现
linux·c语言·vim·终端·碰撞检测·俄罗斯方块·vt100
枕星而眠9 小时前
Linux 进程:虚拟内存、Fork原理、IPC通信与面试避坑
linux·运维·c语言·后端
上海光华专利事务所10 小时前
知识产权管理中的流程自动化:从人工操作到系统智能
经验分享·自动化
码不停蹄Zzz10 小时前
多级指针使用方法
c语言
努力努力再努力wz10 小时前
【Redis入门系列】:Redis 内部编码机制与 String 深度解析:SDS 底层实现、三种编码与核心命令详解
c语言·开发语言·数据结构·数据库·c++·redis·缓存
05候补工程师10 小时前
【线性代数】核心考点复习笔记:二次型配方法、施密特正交化步骤与特征值经典题型详解
经验分享·笔记·线性代数·考研·算法
启芯硬件10 小时前
用AI解决电源最复杂PDN问题的实战设计案例
人工智能·经验分享·嵌入式硬件·硬件工程·高速仿真