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

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

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

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

//** 图案绘出,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);

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

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

下面是源码和图例:

mandala28 (){

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

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

//** 重绘图案

//redraw28:

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

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

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

//** 设置颜色,取得颜色值

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

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

cs.SetTextSize (28);

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

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

cs.DrawText (ss,50,680);

cs.Update ();

//** 图形区域框线

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

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

cs.Update ();

//****** figure 1 **** center figure

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

a=2*pi/16*i ; L=140;

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

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

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

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

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

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

cs.DrawOval (sx1,sy1, 20, k*0.8, i*22.5);

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

} } }

//****** figure 1 **** center figure

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

a=2*pi/4*i ; L=140;

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

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

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

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

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

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

cs.DrawOval (sx1,sy1, 30, k*0.8, i*90);

cs.DrawOval (sx2,sy2, 10, k*1.2, i*90);

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

} } }

//****** figure 2 **** center figure

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

a=2*pi/4*i+pi/4 ; L=130;

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, 25, k*1.2, i*90+45);

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

} } }

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

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

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

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

sy1=(float)(L*sin(a))+py;

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

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

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

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

} } // }

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

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

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

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

sy1=(float)(L*sin(a))+py;

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

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

cs.DrawOval (sx1,sy1,40,k*0.8, i*45);

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

} } }

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

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

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

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

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

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

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.2 , i*45);

cs.DrawOval (sx2,sy2,20,k*1.8, i*45);

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

} } }

cs.Update ();

}//test28

mandala27 (){

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

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

//** 重绘图案

redraw27:

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

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

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

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

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

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

cs.SetTextSize (28);

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

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

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<4;i++){

a=2*pi/4*i ; L=170;

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

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

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

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,20,k*1.2, i*90);

cs.DrawOval (sx2,sy2,30,k*1.0, i*90);

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

} } }

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

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

a=2*pi/4*i+pi/4 ; L=160;

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

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

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

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

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

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

} } }

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

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

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

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, 25, k*0.8, i*45+22.5);

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

} } }

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

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

a=2*pi/16*i ; L=100;

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,15, k*1.5, i*22.5);

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

} } }

//****** figure 5 **** center figure

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

a=2*pi/4*i ; L=60;

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

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

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

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*90);

cs.DrawOval (sx2,sy2, 15, k*1.5, i*45);

} } }

cs.Update ();

}//test27

相关推荐
数据库小学妹2 小时前
什么是关系型数据库?零基础用一张订单表讲透原理、SQL与ACID
经验分享·关系型数据库·国产数据库·acid·关系数据库·关系模型·主键外键
hgfsjk3 小时前
跨境电商ERP系统软件哪个好?2026年选型指南
大数据·经验分享·笔记·其他
虹科数字化与AR3 小时前
AR远程医疗解决方案对比:技术特点与临床应用分析
经验分享
撑伞的鱼99373 小时前
小白安装使用AI编程助手教程:文心快码从下载到跑通首个任务
青少年编程·教程·ai编程·ai工具
BYSJMG4 小时前
计算机毕设选题推荐:基于大数据的公共交通运营数据分析与可视化,Spark+K-Means聚类城市运营模式
大数据·hadoop·信息可视化·数据分析·spark·kmeans·课程设计
聚美智数4 小时前
图片去摩尔纹 - 屏幕翻拍波纹消除 - 图像摩尔纹消解 - 屏幕干涉纹修复 API 接口介绍
经验分享·ocr
是隼人4 小时前
buuctf-pwn bypwn(ret2shellcode)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
tianxuanjg4 小时前
工业/协作机器人研发采购指南:如何适配新品迭代的CNC加工合作
人工智能·经验分享·机器人·无人机·材质
T1mzhou5 小时前
ARM64 Linux 6.10内核启动流程6-psci.c和ATF/U-Boot 的电源接口
linux·服务器·c语言
神明不懂浪漫5 小时前
【第四章】索引——B+树、回表,加快数据库的查找能力的利器
开发语言·数据结构·数据库·经验分享·笔记·b树