




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第利用Matlab實現繪制中秋山間秋月和皓月當空效果hold(ax,'on');
%=========================================================================
%顏色預定義,注意此處是hsv格式
cClouds=[330,25,100];%云的顏色
cSky=[220,50,50];%天空的顏色
cFurther=[230,25,90];%遠山的顏色
cCloser=[210,70,10];%近山的顏色
%=========================================================================
%繪圖函數調用
ax.Color=hsv2rgb(cFurther./[360,100,100]);%背景為遠山的顏色
drawSky(cSky,cFurther)%畫出天空顏色漸變效果
drawClouds(cClouds)%畫出彩色云朵效果
drawMountains(cFurther,cCloser)%畫出山脈效果
%=========================================================================
%功能函數:
%-------------------------------------------------------------------------
%漸變背景生成函數
functiondrawSky(colSky,colFurther)
%顏色由hsv轉rgb
colSky=hsv2rgb(colSky./[360,100,100]);
colFurther=hsv2rgb(colFurther./[360,100,100]);
%構建漸變色網格
[XMesh,YMesh]=meshgrid(1:800,301:600);
ZMesh=zeros(size(XMesh));
CMesh=vColorMat([800,300],[colFurther;colSky]);
surf(XMesh,YMesh,ZMesh,'CData',CMesh,'EdgeColor','none');
%-------------------------------------------------------------------------
%云繪制函數
functiondrawClouds(colClouds)
colClouds=hsv2rgb(colClouds./[360,100,100]);
%隨機噪聲生成
[X,Y]=meshgrid(linspace(0,1,500));
CLX=(-cos(X.*2.*pi)+1).^.2;
CLY=(-cos(Y.*2.*pi)+1).^.2;
r=(X-.5).^2+(Y-.5).^2;
alp=abs(ifftn(exp(3i*rand(500))./r.^.8)).*(CLX.*CLY);
alp=alp./max(alp,[],'all');
CMesh=zeros([size(alp),3]);
CMesh(:,:,1)=colClouds(1);
CMesh(:,:,2)=colClouds(2);
CMesh(:,:,3)=colClouds(3);
%越向下、云越透明
dy=(1:500)./500.*0.8+0.2;
image([0,800],[350,600],CMesh,'AlphaData',alp.*(dy'));
%-------------------------------------------------------------------------
%山峰繪制函數
functiondrawMountains(colFurther,colCloser)
[X,Y]=meshgrid(linspace(0,1,800));
CLX=(-cos(X.*2.*pi)+1).^.2;
CLY=(-cos(Y.*2.*pi)+1).^.2;
r=(X-.5).^2+(Y-.5).^2;
%8層山
fori=1:8
%每次都生成一次二維隨機噪聲,并取其中一行的數據
h=abs(ifftn(exp(5i*rand(800))./r.^1.05)).*(CLX.*CLY).*10;
nh=(8-i)*30+h(400,:);
ifi==1,nh=nh.*.8;end
hm=ceil(max(nh));
CMesh=zeros([hm,800,3]);
%顏色矩陣構造,
tcol=colFurther+(colCloser-colFurther)./8.*(i);
tcol=hsv2rgb(tcol./[360,100,100]);
CMesh(:,:,1)=tcol(1);
CMesh(:,:,2)=tcol(2);
CMesh(:,:,3)=tcol(3);
%用nan數值框出山的輪廓
alp=ones(hm,800);
alp((1:hm)'nh)=nan;
%繪制山峰
image([-50,850],[0,hm],CMesh,'AlphaData',alp.*0.98);
%=========================================================================
%一個線性插值的漸變圖生成函數
functioncolorMat=vColorMat(matSize,colorList)
yList=((0:(matSize(2)-1))./(matSize(2)-1))';
xList=ones(1,matSize(1));
%線性插值
colorMat(:,:,1)=(colorList(1,1)+yList.*(colorList(2,1)-colorList(1,1)))*xList;
colorMat(:,:,2)=(colorList(1,2)+yList.*(colorList(2,2)-colorList(1,2)))*xList;
colorMat(:,:,3)=(colorList(1,3)+yList.*(colorList(2,3)-colorList(1,3)))*xList;
本人將代碼再次略作改編,貼合中秋主題,又寫了山間秋月的代碼,能夠動態展示變換的云霧以及慢慢變圓的月亮:
functionautumoon_2
%@author:slandarer
%gzh:slandarer隨筆
%axes設置
ax=gca;
ax.XTick=[];
ax.YTick=[];
ax.XLim=[0,800];
ax.YLim=[0,600];
ax.DataAspectRatio=[111];
hold(ax,'on');
%=========================================================================
%顏色預定義,注意此處是hsv格式
cFurther=[225,35,70];%遠山的顏色
cCloser=[210,70,10];%近山的顏色
cClouds=[2502643];%云的顏色
cSky=[21510018];%天空的顏色
%月亮顏色格式為rgb
cMoon=[253,252,222]./255;
%=========================================================================
%繪圖函數調用
ax.Color=hsv2rgb(cFurther./[360,100,100]);%背景為遠山的顏色
drawSky(cSky,cFurther)%畫出天空顏色漸變效果
%基礎繪制月亮
t1=linspace(-pi/2,pi/2,100);
t2=linspace(pi/2,3*pi/2,100);
X1=cos(t1).*35;Y1=sin(t1).*35;
X2=cos(t2).*35;Y2=sin(t2).*35;
moonHdl=fill([X1,X2]+600,[Y1,Y2]+500,cMoon,'E
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內科學培訓課件
- 《病房心電監護系統》課件
- 《心血管系統解析與功能》課件
- 簡單安全類培訓
- 高三德育工作總結模版
- 2025年合同管理工作總結模版
- 陽光心態與職場賦能:塑造積極職業心態的三把鑰匙
- 《供應鏈管理經濟地理課件》課件
- 零星用工管理培訓
- 小兒面肩肱型肌營養不良的臨床護理
- 中國國際大學生創新大賽(2025)職教賽道重點培育項目申報表
- 2025年骨干教師復試試題及答案
- 統計學-形考任務3-國開-參考資料
- 人要有自信+課件-+2024-2025學年統編版道德與法治七年級下冊
- (二模)新疆維吾爾自治區2025年普通高考第二次適應性檢測 英語試卷(含答案詳解)
- 100以內乘法除法口算練習題本1000道可打印
- 承包沙場生產線合同范本
- 2025年全球及中國金剛石銅和金剛石鋁行業頭部企業市場占有率及排名調研報告
- DB11-T 583-2022 扣件式和碗扣式鋼管腳手架安全選用技術規程
- 歌劇排練與觀摩知到智慧樹章節測試課后答案2024年秋四川音樂學院
- 海底撈崗位晉升流程
評論
0/150
提交評論