學(xué)藝術(shù)圖案畫-曼陀羅(96))
數(shù)學(xué)藝術(shù)圖案畫曼陀羅96本系列曼陀羅圖案創(chuàng)制一直以來(lái)都是我的最愛。我總是被色彩絢爛和美輪美奐的圖案感動(dòng)。在前些時(shí)候完成了曼陀羅圖案系列 9 輪既定目標(biāo) 圖1至 圖 90。本博文開始提供的是第 10 集系列曼陀羅圖案 圖 91 至圖 100 。再次把美好的東西貢獻(xiàn)給大家希望大家喜歡。曼陀羅圖案畫是一類經(jīng)典的、具有長(zhǎng)久歷史的藝術(shù)形式。在多個(gè)種族文化和宗教傳統(tǒng)中占據(jù)很特殊地位。且不談宗教方面其圖案在美學(xué)和藝術(shù)方面就有那無(wú)與倫比的地位。圖案通常以圓形呈現(xiàn)它那幾何圖形的集合圖案的對(duì)稱性、復(fù)雜性以及色彩的絢爛和變化多端常能激起人們對(duì)美的憧憬和向往。本博文提供了最為簡(jiǎn)單和直觀的數(shù)學(xué)藝術(shù)繪圖方法一塊畫布 Canvas cs.Draw...一個(gè)調(diào)色板設(shè)置預(yù)設(shè)調(diào)色板 getcolor ( )加色彩變化 SetColor (180, r1, g1k*cn, b1)一個(gè)繪圖函數(shù) mandalaXX ( ) { ······ }幾個(gè)簡(jiǎn)單的繪圖語(yǔ)句canvas.DrawOval (X, Y, La, Lb, R) 畫橢圓canvas.DrawCircle (X, Y, R) 畫圓形繪出一組色彩繽紛美輪美奐的圖案。顏色設(shè)置原預(yù)設(shè)置六個(gè)調(diào)色板色調(diào)取色彩亮度及鮮艷圖案繪出時(shí)加色彩變化。今有修正增加一色調(diào)黃色yellow 。圖案的繪制要點(diǎn)是以橢圓的長(zhǎng)短軸變化半徑變化以及中心距的變化再加上色彩的變化來(lái)完成圖案的復(fù)雜度圖案圖形的藝術(shù)性。各參數(shù)的變化代碼中有注釋。本人感受到屏幕的美感數(shù)學(xué)繪畫的藝術(shù)感簡(jiǎn)直美極了。本博文是曼陀羅圖案系列文檔今后會(huì)陸續(xù)推出其他圖樣。謹(jǐn)以此方法貢獻(xiàn)給喜歡美的朋友。本程序是用簡(jiǎn)單的C語(yǔ)言在安卓手機(jī)上編寫的。界面是手機(jī)屏幕方式??偨Y(jié)一下圖形和色彩變化的要點(diǎn)一是圖形變化圖形輸出中心距L變化加微調(diào)距離(L40)疊加圖形以及橢圓的長(zhǎng)短軸尺寸比例的變化循環(huán)套疊畫出圖形。二是色彩變化預(yù)設(shè)置調(diào)色板色調(diào)模型循環(huán)繪圖時(shí)調(diào)用k值微調(diào)RGB顏色值來(lái)變化輸出圖形色彩。細(xì)心的讀者對(duì)比一下幾篇博文就能體會(huì)此中奧妙。下面是源碼//設(shè)置全局變量或局部變量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 全色調(diào)色板 A, R, G, B)double Rn; //random numberint i,j,n,t,k, kn; //t times, n numbeint cn; //設(shè)置調(diào)色板色彩變化系數(shù)預(yù)設(shè)置調(diào)色板getcolor (){//** 此是新修正的調(diào)色板//** 原預(yù)設(shè)置調(diào)色板 (六個(gè)色調(diào)新增yellow// 1 red 2 pink 3 blue 4 purple// 5 green 6 orange 7 yellow// cn 色調(diào)變化系數(shù) cn 5 to 20// cn小 紅色調(diào) 大 藍(lán)綠色調(diào)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 是一次循環(huán)展示的圖案Times ( 1 - 7 ) 是動(dòng)畫展示的中間過(guò)程圖案。圖案源碼如下//** 圖案繪出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//**圖案動(dòng)畫展示圖案和色彩多次疊加每輪次八步產(chǎn)生8個(gè)不同色彩的圖案2圈次可展示出16個(gè)圖案//** 圖案采用多層圖形多層色彩套疊設(shè)計(jì)方法//** 外圈二三層中心區(qū)二三層多層多彩套圖形設(shè)計(jì)mandala96 (){//** init round, n, center point px, pyround2; n0; //** 設(shè)置動(dòng)畫演示次數(shù)圈數(shù)----px360; py350; //** 圖案輸出中心點(diǎn)//** 重繪圖案redraw96:cs.SetFillMode (1);//0不填色1填色cs.SetColor (255,0,0,0);cs.DrawRect (0,0,720,720); //頁(yè)面重置nn1; //計(jì)數(shù)圈數(shù)//** 圖案繪出有 8 步圖形顏色變化for (t1; t8; t){cs.SetFillMode (1); //0不填色1填色cs.SetColor (255,0,0,0);cs.DrawRect(20,660,700,710); //renew times//** 設(shè)置顏色取得顏色值getcolor ();cs.SetColor (255, r1, g1200, b1);//** 屏幕打印狀態(tài)提示次數(shù) t圈數(shù) nsintToString (t);ss3Times s;sintToString (n);ss1Round s;cs.SetTextSize (28);cs.DrawText (曼陀羅圖案 (96) ,50,40);cs.DrawText (** 六六大順 ** ,480,40);cs.DrawText (ss3,90,680);cs.DrawText (ss1,240,680);cs.Update ();//** 圖形區(qū)域框線cs.SetFillMode (0);//0不填色1填色cs.SetColor (255,250,250,0);cs.DrawRect(50,50,670,650); //框線cs.Update ();//****** figure 1 ****** 圖形疊加設(shè)計(jì)getcolor ();for(i0;i12; i){a2*pi/12*ipi/12 ; L160;sx1(float)(L*sin(a))px;sy1(float)(-L*cos(a))py;a2*pi/6*ipi/6 ; L165;sx2(float)(L*sin(a))px;sy2(float)(-L*cos(a))py;a2*pi/6*i ; L125;sx3(float)(L*cos(a))px;sy3(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*3015);cs.DrawCircle (sx1,sy1, k/3);cs.DrawOval (sx2,sy2,15,k*1.2, i*6030);cs.DrawOval (sx3,sy3,15,k*1.2, i*60);cs.DrawCircle (sx3,sy3, k/5);} }//****** center figure 1 ********getcolor ();for(i0;i6; i){a2*pi/6*ipi/6 ; L65;sx1(float)(L*sin(a))px;sy1(float)(-L*cos(a))py;a2*pi/6*i ; L60;sx2(float)(L*sin(a))px;sy2(float)(-L*cos(a))py;for (k15;k40; k){//** 依取得顏色 顏色變化 a180 半透明cs.SetColor (180,r1, g1k*cn, b1);cs.DrawOval (sx1,sy1,30,k*1.2, i*6030);cs.DrawOval (sx2,sy2,40,k*1.8, i*60);cs.DrawCircle (sx2,sy2, k/3);} }//****** figure 2 ****** 圖形疊加設(shè)計(jì)getcolor ();for(i0;i6; i){a2*pi/6*ipi/6 ; L155;sx1(float)(L*cos(a))px;sy1(float)(L*sin(a))py;for (k5;k20; k){//** 依取得顏色 顏色變化 a180 半透明cs.SetColor (180,r1, g1k*cn, b1);cs.DrawOval (sx1,sy1,25,k*1.2, i*6030);cs.DrawCircle (sx1,sy1, k/3);cs.DrawCircle (px,py, k);} }cs.Update (); //即時(shí)動(dòng)畫演示} //next tsleep (1000); //next round delayif (nround) goto redraw96; //下一圈}//test96//** End ****