1效果


2程式說明
其實非常簡單,只需要計算出各個頂點位置,并用fill3繪制一個個面出來即可,為了鉆石的色彩更加豐富,我們用light函式設定了光照并為fill3創建出的PATCH物件設定了以下屬性,
- FaceAlpha 面透明度
- EdgeAlpha 邊透明度
- FaceLighting 面照亮方式(是整個面相同顏色還是通過插值不同位置不同顏色)
- EdgeLighting 邊照亮方式(與面照亮方式類似)
- SpecularStrength 鏡面反射的強度
- DiffuseStrength 散射光的強度
- AmbientStrength 環境光的強度
其中:
若將PATCH屬性由:
faceColor=[0 71 177];
facePara={faceColor./255,'FaceAlpha',0.6,'EdgeColor',faceColor./255.*0.8,'EdgeAlpha',0.3,...
'FaceLighting','gouraud','EdgeLighting','gouraud',...
'SpecularStrength',0.9,'DiffuseStrength',0.7,'AmbientStrength',0.7}; % 面引數
改為:
faceColor=[237 64 153];
facePara={faceColor./255,'FaceAlpha',0.4,'EdgeColor',faceColor./255.*0.8,'EdgeAlpha',0.2,...
'FaceLighting','gouraud','EdgeLighting','gouraud',...
'SpecularStrength',0.9,'DiffuseStrength',0.7,'AmbientStrength',0.6}; % 面引數
則鉆石變成這個樣子:

另:
大家可以猜猜下面這個鉆石是咋畫的:


3完整代碼
function diamond
hold on
ax=gca;
axis equal
grid on
ax.GridLineStyle='--';
ax.LineWidth=1.2;
ax.XLim=[-2,2];
ax.YLim=[-2,2];
ax.ZLim=[-1.8,1.5];
ax.XColor=[1,1,1].*0.4;
ax.YColor=[1,1,1].*0.4;
ax.ZColor=[1,1,1].*0.4;
ax.DataAspectRatio=[1,1,1];
ax.DataAspectRatioMode='manual';
ax.CameraPosition=[-67.6287 -204.5276 82.7879];
light('Position',[5,6,5])
thetaSet8=linspace(0,2*pi-pi/4,8)';
thetaSet16=linspace(0,2*pi-pi/8,16)';
faceColor=[0 71 177];
facePara={faceColor./255,'FaceAlpha',0.6,'EdgeColor',faceColor./255.*0.8,'EdgeAlpha',0.3,...
'FaceLighting','gouraud','EdgeLighting','gouraud',...
'SpecularStrength',0.9,'DiffuseStrength',0.7,'AmbientStrength',0.7}; % 面引數
% faceColor=[237 64 153];
% facePara={faceColor./255,'FaceAlpha',0.4,'EdgeColor',faceColor./255.*0.8,'EdgeAlpha',0.2,...
% 'FaceLighting','gouraud','EdgeLighting','gouraud',...
% 'SpecularStrength',0.9,'DiffuseStrength',0.7,'AmbientStrength',0.6}; % 面引數
% 繪制最上方八邊形
pntSet1=[cos(thetaSet8),sin(thetaSet8),ones(8,1)];
fill3(pntSet1(:,1),pntSet1(:,2),pntSet1(:,3),facePara{:})
% 一圈8個三角形
pntSet2=[cos(thetaSet8+pi/8).*1.3,sin(thetaSet8+pi/8).*1.3,ones(8,1).*0.7];
for i=1:8
p1=i;
p2=mod(i,8)+1;
p3=i;
fill3([pntSet1([p1,p2],1);pntSet2(p3,1)],...
[pntSet1([p1,p2],2);pntSet2(p3,2)],...
[pntSet1([p1,p2],3);pntSet2(p3,3)],facePara{:})
end
% 一圈8個四邊形
pntSet3=[cos(thetaSet8).*1.7,sin(thetaSet8).*1.7,ones(8,1).*0.3];
for i=1:8
p1=mod(i,8)+1;
p2=i;
p3=p1;
p4=p1;
fill3([pntSet1(p1,1);pntSet2(p2,1);pntSet3(p3,1);pntSet2(p4,1)],...
[pntSet1(p1,2);pntSet2(p2,2);pntSet3(p3,2);pntSet2(p4,2)],...
[pntSet1(p1,3);pntSet2(p2,3);pntSet3(p3,3);pntSet2(p4,3)],facePara{:})
end
% 一圈16個三角形
pntSet4=[cos(thetaSet16).*1.7,sin(thetaSet16).*1.7,ones(16,1).*0.3];
for i=1:8
p1=i;
p2=2*i-1;
p3=2*i;
fill3([pntSet2(p1,1);pntSet4([p2,p3],1)],...
[pntSet2(p1,2);pntSet4([p2,p3],2)],...
[pntSet2(p1,3);pntSet4([p2,p3],3)],facePara{:})
p2=2*i;
p3=mod(2*i,16)+1;
fill3([pntSet2(p1,1);pntSet4([p2,p3],1)],...
[pntSet2(p1,2);pntSet4([p2,p3],2)],...
[pntSet2(p1,3);pntSet4([p2,p3],3)],facePara{:})
end
% 一圈16個四邊角形
pntSet5=[cos(thetaSet16).*1.7,sin(thetaSet16).*1.7,ones(16,1).*0.15];
for i=1:16
p1=i;p2=mod(i,16)+1;
p3=mod(i,16)+1;p4=i;
fill3([pntSet4(p1,1);pntSet4(p2,1);pntSet5(p3,1);pntSet5(p4,1)],...
[pntSet4(p1,2);pntSet4(p2,2);pntSet5(p3,2);pntSet5(p4,2)],...
[pntSet4(p1,3);pntSet4(p2,3);pntSet5(p3,3);pntSet5(p4,3)],facePara{:})
end
pntSet6=[cos(thetaSet8+pi/8).*0.4,sin(thetaSet8+pi/8).*0.4,ones(8,1).*(-1.15)];
% 一圈16個長三角形
for i=1:8
p1=i;
p2=2*i-1;
p3=2*i;
fill3([pntSet6(p1,1);pntSet5([p2,p3],1)],...
[pntSet6(p1,2);pntSet5([p2,p3],2)],...
[pntSet6(p1,3);pntSet5([p2,p3],3)],facePara{:})
p2=2*i;
p3=mod(2*i,16)+1;
fill3([pntSet6(p1,1);pntSet5([p2,p3],1)],...
[pntSet6(p1,2);pntSet5([p2,p3],2)],...
[pntSet6(p1,3);pntSet5([p2,p3],3)],facePara{:})
end
% 一圈8個長四邊形
pntSet7=[cos(thetaSet8).*1.7,sin(thetaSet8).*1.7,ones(8,1).*0.15];
for i=1:8
p1=mod(i,8)+1;
p2=i;
p4=mod(i,8)+1;
fill3([pntSet7(p1,1);pntSet6(p2,1);0;pntSet6(p4,1)],...
[pntSet7(p1,2);pntSet6(p2,2);0;pntSet6(p4,2)],...
[pntSet7(p1,3);pntSet6(p2,3);-1.5;pntSet6(p4,3)],facePara{:})
end
end
4其他過節可能會用到的程式
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
!!!!點擊圖片跳轉連接!!!!
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
4.1玫瑰花球
4.2櫻花樹
4.3立體愛心九宮格
4.4立體玫瑰花
4.5水晶愛心
4.6兩款相冊
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/293010.html
標籤:其他
上一篇:蘋果新功能惹眾怒,4000多家組織和個人簽署公開信 敦促蘋果放棄“兒童安全”功能
下一篇:畢業五年總結
