最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言編程使用MATLAB繪制橢圓及圓角矩形

 更新時(shí)間:2022年02月15日 14:03:09   作者:slandarer  
這篇文章主要為大家介紹了C語(yǔ)言編程中使用MATLAB繪制橢圓及圓角矩形的實(shí)現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助

不能放圖,大家自行繪制試試看。

1 程序說(shuō)明

這個(gè)程序就是用一系列橢圓,圓角矩形及心形拼在起,以下說(shuō)明一下各部分怎么生成:

橢圓形:

橢圓形是用的如下橢圓數(shù)據(jù)生成函數(shù)生成數(shù)據(jù)點(diǎn),之后再用fill函數(shù)繪制而成,其中Mu為橢圓中心點(diǎn),Sigma為協(xié)方差矩陣,S為半徑平方,pntNum是生成數(shù)據(jù)點(diǎn)個(gè)數(shù):

% 橢圓數(shù)據(jù)計(jì)算函數(shù),輸入?yún)f(xié)方差矩陣、中心點(diǎn)、半徑生成橢圓數(shù)據(jù)

% 橢圓數(shù)據(jù)計(jì)算函數(shù),輸入?yún)f(xié)方差矩陣、中心點(diǎn)、半徑生成橢圓數(shù)據(jù)
function [X,Y]=getEllipse(Mu,Sigma,S,pntNum)
    % (X-Mu)*inv(Sigma)*(X-Mu)=S
    invSig=inv(Sigma);
    [V,D]=eig(invSig);
    aa=sqrt(S/D(1));
    bb=sqrt(S/D(4));
    t=linspace(0,2*pi,pntNum);
    XY=V*[aa*cos(t);bb*sin(t)];
    X=(XY(1,:)+Mu(1))';
    Y=(XY(2,:)+Mu(2))';
end

圓角矩形:
使用MATLAB自帶的圓角矩陣生成函數(shù),詳細(xì)信息可以去MATHWORKS官網(wǎng)查看:

rectangle(‘Position’,pos,‘Curvature’,cur)

心形:

使用如下心形函數(shù):

t=linspace(-2.9,2.9,1000);
X=16.*(sin(t)).^3;
Y=13.*cos(t)-5.*cos(2.*t)-2.*cos(3.*t)-cos(4.*t);
fill(X,Y,[180,39,45]./255,'EdgeColor',[180,39,45]./255,'LineWidth',2)

 2 完整代碼

function bingdundun
ax=gca;
ax.DataAspectRatio=[1 1 1];
ax.XLim=[-5 5];
ax.YLim=[-5 5];
hold(ax,'on')
% =========================================================================
% 繪制冰糖外殼
[X,Y]=getEllipse([0,0],[1,0;0,1.3],3.17^2,200);
plot(X,Y,'Color',[57,57,57]./255,'LineWidth',1.8)
%
[X,Y]=getEllipse([1.7,2.6],[1.2,0;0,1.8],.65^2,200);
plot(X,Y,'Color',[57,57,57]./255,'LineWidth',1.8)
plot(-X,Y,'Color',[57,57,57]./255,'LineWidth',1.8)
[X,Y]=getEllipse([1.7,2.6],[1.2,0;0,1.8],.6^2,200);
fill(X,Y,[1,1,1],'EdgeColor',[1,1,1],'LineWidth',1.8)
fill(-X,Y,[1,1,1],'EdgeColor',[1,1,1],'LineWidth',1.8)
%
[X,Y]=getEllipse([-3.5,-1],[1.1,.3;.3,1.1],.75^2,200);
plot(X,Y,'Color',[57,57,57]./255,'LineWidth',1.8)
[X,Y]=getEllipse([-3.5,-1],[1.1,.3;.3,1.1],.68^2,200);
fill(X,Y,[1,1,1],'EdgeColor',[1,1,1],'LineWidth',1.8)
[X,Y]=getEllipse([3.5,1],[1.1,.3;.3,1.1],.75^2,200);
plot(X,Y,'Color',[57,57,57]./255,'LineWidth',1.8)
[X,Y]=getEllipse([3.5,1],[1.1,.3;.3,1.1],.68^2,200);
fill(X,Y,[1,1,1],'EdgeColor',[1,1,1],'LineWidth',1.8)
%
X=[-3.8,-2,-3];
Y=[-.51+.13,1+.13,-1];
plot(X,Y,'Color',[57,57,57]./255,'LineWidth',1.8)
plot(-X,-Y,'Color',[57,57,57]./255,'LineWidth',1.8)
X=[-3.8,-2,-3];
Y=[-.51+.03,1+.03,-1];
fill(X,Y,[1,1,1],'EdgeColor',[1,1,1],'LineWidth',1.8)
fill(-X,-Y,[1,1,1],'EdgeColor',[1,1,1],'LineWidth',1.8)
%
[X,Y]=getEllipse([0,-.1],[1,0;0,1.6],.9^2,200);
Y(Y<0)=Y(Y<0).*.2;Y=Y-4.2;X=X-1.2;
plot(X,Y,'Color',[57,57,57]./255,'LineWidth',2)
plot(-X,Y,'Color',[57,57,57]./255,'LineWidth',2)
rectangle('Position',[-2.1 -4.2 1.7 3],'Curvature',0.4,...
    'FaceColor',[1 1 1],'EdgeColor',[57,57,57]./255,'LineWidth',1.8)
rectangle('Position',[2.1-1.7 -4.2 1.7 3],'Curvature',0.4,...
    'FaceColor',[1 1 1],'EdgeColor',[57,57,57]./255,'LineWidth',1.8)
[X,Y]=getEllipse([0,-.1],[1,0;0,1.6],.8^2,200);
Y(Y<0)=Y(Y<0).*.2;Y=Y-4.1;X=X-1.2;
fill(X,Y,[1,1,1],'EdgeColor',[1,1,1],'LineWidth',1.8)
fill(-X,Y,[1,1,1],'EdgeColor',[1,1,1],'LineWidth',1.8)
%
[X,Y]=getEllipse([0,0],[1,0;0,1.3],3.1^2,200);
fill(X,Y,[1,1,1],'EdgeColor',[1,1,1],'LineWidth',1.8)
% =========================================================================
% 耳朵
[X,Y]=getEllipse([1.7,2.6],[1.2,0;0,1.8],.5^2,200);
fill(X,Y,[57,57,57]./255,'EdgeColor',[57,57,57]./255,'LineWidth',2)
fill(-X,Y,[57,57,57]./255,'EdgeColor',[57,57,57]./255,'LineWidth',2)
% 胳膊
[X,Y]=getEllipse([-3.5,-1],[1.1,.3;.3,1.1],.6^2,200);
fill(X,Y,[57,57,57]./255,'EdgeColor',[57,57,57]./255,'LineWidth',2)
[X,Y]=getEllipse([3.5,1],[1.1,.3;.3,1.1],.6^2,200);
fill(X,Y,[57,57,57]./255,'EdgeColor',[57,57,57]./255,'LineWidth',2)
X=[-3.8,-2,-3];
Y=[-.51,1,-1];
fill(X,Y,[57,57,57]./255,'EdgeColor',[57,57,57]./255)
fill(-X,-Y,[57,57,57]./255,'EdgeColor',[57,57,57]./255)
tt=linspace(-2.9,2.9,1000);
X=16.*(sin(tt)).^3;
Y=13.*cos(tt)-5.*cos(2.*tt)-2.*cos(3.*tt)-cos(4.*tt);
X=X.*.018+3.6;
Y=Y.*.018+1.1;
fill(X,Y,[180,39,45]./255,'EdgeColor',[180,39,45]./255,'LineWidth',2)
% 腿
[X,Y]=getEllipse([0,-.1],[1,0;0,1.6],.7^2,200);
Y(Y<0)=Y(Y<0).*.2;Y=Y-4.1;X=X-1.2;
fill(X,Y,[57,57,57]./255,'EdgeColor',[57,57,57]./255,'LineWidth',2)
fill(-X,Y,[57,57,57]./255,'EdgeColor',[57,57,57]./255,'LineWidth',2)
rectangle('Position',[-1.95 -4.3 1.4 3],'Curvature',0.4,...
    'FaceColor',[57,57,57]./255,'EdgeColor',[57,57,57]./255)
rectangle('Position',[1.95-1.4 -4.3 1.4 3],'Curvature',0.4,...
    'FaceColor',[57,57,57]./255,'EdgeColor',[57,57,57]./255)
% 身體
[X,Y]=getEllipse([0,0],[1,0;0,1.3],3^2,200);
fill(X,Y,[1,1,1],'EdgeColor',[57,57,57]./255,'LineWidth',2.5)
% 五環(huán)
cList=[132,199,114;251,184,77;89,120,177;158,48,87;98,205,247];
for i=1:5
    [X,Y]=getEllipse([0,0],[1.6,0;0,1.3],(2.05-0.05.*i)^2,200);
    Y(Y<0)=Y(Y<0).*.8;Y=Y+.5;
    fill(X,Y,[1,1,1],'EdgeColor',cList(i,:)./255,'LineWidth',2.5)
end
% 眼睛
[X,Y]=getEllipse([1.2,1.2],[1.2,-.5;-.5,1.1],.65^2,200);
fill(X,Y,[57,57,57]./255,'EdgeColor',[57,57,57]./255,'LineWidth',2)
fill(-X,Y,[57,57,57]./255,'EdgeColor',[57,57,57]./255,'LineWidth',2)
[X,Y]=getEllipse([.95,1.3],[1,0;0,1],.35^2,200);
fill(X,Y,[57,57,57]./255,'EdgeColor',[1,1,1],'LineWidth',1.6)
fill(-X,Y,[57,57,57]./255,'EdgeColor',[1,1,1],'LineWidth',1.6)
[X,Y]=getEllipse([.95,1.3],[1,0;0,1],.1^2,200);
fill(X+.18,Y,[1,1,1],'EdgeColor',[57,57,57]./255,'LineWidth',.5)
fill(-X+.18,Y,[1,1,1],'EdgeColor',[57,57,57]./255,'LineWidth',.5)
% 嘴巴
[X,Y]=getEllipse([0.05,.2],[1.2,.15;.15,.8],.69^2,200);
fill(X,Y,[57,57,57]./255,'EdgeColor',[57,57,57]./255,'LineWidth',2)
[X,Y]=getEllipse([0,.75],[1,0.2;0.2,.3],.4^2,200);
fill(X,Y,[1,1,1],'EdgeColor',[1,1,1],'LineWidth',2)
[X,Y]=getEllipse([0,0],[.8,0;0,.2],.6^2,200);
fill(X,Y,[180,39,45]./255,'EdgeColor',[180,39,45]./255,'LineWidth',2)
% 鼻子
[X,Y]=getEllipse([0,-.1],[1,0;0,1.6],.2^2,200);
Y(Y<0)=Y(Y<0).*.2;Y=-Y+.9;
fill(X,Y,[57,57,57]./255,'EdgeColor',[57,57,57]./255,'LineWidth',2)
% =========================================================================
% 五環(huán)
tt=linspace(0,2*pi,100);
X=cos(tt).*.14;
Y=sin(tt).*.14;
plot(X,Y-2.8,'Color',[57,57,57]./255,'LineWidth',1.2)
plot(X-.3,Y-2.8,'Color',[106,201,245]./255,'LineWidth',1.2)
plot(X+.3,Y-2.8,'Color',[155,79,87]./255,'LineWidth',1.2)
plot(X-.15,Y-2.9,'Color',[236,197,107]./255,'LineWidth',1.2)
plot(X+.15,Y-2.9,'Color',[126,159,101]./255,'LineWidth',1.2)
% 文本
text(0,-2.4,'BEIJING 2022','HorizontalAlignment','center',...
    'FontSize',8,'FontName','Comic Sans MS')
% 標(biāo)志
fill([.1,-.12,-.08],[0,0-0.05,-0.15]-1.5,[98,118,163]./255,'EdgeColor',[98,118,163]./255)
fill([-.08,-.35,.1],[-0.1,-.2,-.1]-1.6,[98,118,163]./255,'EdgeColor',[98,118,163]./255)
fill([-.08,-.08,.1,.1],[-0.1,-0.15,-.2,-.15]-1.5,[192,15,45]./255,'EdgeColor',[192,15,45]./255)
plot([-.35,-.3,-.25,-.2,-.15,-.1,-.05,.1]+.02,...
     [0,.02,.04,.06,.04,.02,0,.02]-1.82,'Color',[120,196,219]./255,'LineWidth',1.8)
plot([-.33,.05]+.02,[0,-.08]-1.82,'Color',[190,215,84]./255,'LineWidth',1.8)
plot([.05,-.2]+.02,[-.08,-.15]-1.82,'Color',[32,162,218]./255,'LineWidth',1.8)
plot([-.2,.05]+.02,[-.15,-.2]-1.82,'Color',[99,118,151]./255,'LineWidth',1.8)
% =========================================================================
    % 橢圓數(shù)據(jù)計(jì)算函數(shù),輸入?yún)f(xié)方差矩陣、中心點(diǎn)、半徑生成橢圓數(shù)據(jù)
    function [X,Y]=getEllipse(Mu,Sigma,S,pntNum)
        % (X-Mu)*inv(Sigma)*(X-Mu)=S
        invSig=inv(Sigma);
        
        [V,D]=eig(invSig);
        aa=sqrt(S/D(1));
        bb=sqrt(S/D(4));
        
        t=linspace(0,2*pi,pntNum);
        XY=V*[aa*cos(t);bb*sin(t)];
        X=(XY(1,:)+Mu(1))';
        Y=(XY(2,:)+Mu(2))';
    end
end

以上就是C語(yǔ)言編程使用MATLAB繪制橢圓及圓角矩形的詳細(xì)內(nèi)容,更多關(guān)于MATLAB繪制冰墩墩的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用C語(yǔ)言實(shí)現(xiàn)掃雷小游戲

    使用C語(yǔ)言實(shí)現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了使用C語(yǔ)言實(shí)現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 算法詳解之回溯法具體實(shí)現(xiàn)

    算法詳解之回溯法具體實(shí)現(xiàn)

    這篇文章主要介紹了算法詳解之回溯法具體實(shí)現(xiàn),需要的朋友可以參考下
    2014-02-02
  • C語(yǔ)言實(shí)現(xiàn)時(shí)區(qū)轉(zhuǎn)換函數(shù)的實(shí)例

    C語(yǔ)言實(shí)現(xiàn)時(shí)區(qū)轉(zhuǎn)換函數(shù)的實(shí)例

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)時(shí)區(qū)轉(zhuǎn)換函數(shù)的實(shí)例的相關(guān)資料,這里分析需求并提供實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2017-08-08
  • C++ lambda 捕獲模式與右值引用的使用

    C++ lambda 捕獲模式與右值引用的使用

    這篇文章主要介紹了C++ lambda 捕獲模式與右值引用的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 使用C++實(shí)現(xiàn)類(lèi)似Qt的信號(hào)與槽機(jī)制功能

    使用C++實(shí)現(xiàn)類(lèi)似Qt的信號(hào)與槽機(jī)制功能

    信號(hào)與槽機(jī)制是 Qt 框架中的核心設(shè)計(jì),用于實(shí)現(xiàn)對(duì)象之間的解耦通信,在純 C++ 中,我們也可以設(shè)計(jì)出類(lèi)似的機(jī)制,利用模板、函數(shù)指針和哈希表,實(shí)現(xiàn)高效且靈活的信號(hào)與槽功能,本文給大家介紹了如何使用C++實(shí)現(xiàn)類(lèi)似Qt的信號(hào)與槽機(jī)制功能,需要的朋友可以參考下
    2025-01-01
  • C/C++實(shí)現(xiàn)俄羅斯方塊游戲

    C/C++實(shí)現(xiàn)俄羅斯方塊游戲

    這篇文章主要介紹了如何利用C/C++實(shí)現(xiàn)經(jīng)典游戲之一的俄羅斯方塊,文中的實(shí)現(xiàn)步驟講解詳細(xì),對(duì)我們學(xué)習(xí)C語(yǔ)言和C++有一定的幫助,需要的可以參考一下
    2022-02-02
  • 詳談c++11 final與override說(shuō)明符

    詳談c++11 final與override說(shuō)明符

    下面小編就為大家?guī)?lái)一篇詳談c++11 final與override說(shuō)明符。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • C語(yǔ)言修煉之路初識(shí)指針陰陽(yáng)竅?地址還歸大道真下篇

    C語(yǔ)言修煉之路初識(shí)指針陰陽(yáng)竅?地址還歸大道真下篇

    指針是指向另一個(gè)變量的變量。意思是一個(gè)指針保存的是另一個(gè)變量的內(nèi)存地址。換句話說(shuō),指針保存的并不是普通意義上的數(shù)值,而是另一個(gè)變量的地址值。一個(gè)指針保存了另一個(gè)變量的地址值,就說(shuō)這個(gè)指針“指向”了那個(gè)變量
    2022-02-02
  • Qt基于定時(shí)器實(shí)現(xiàn)動(dòng)圖展示效果

    Qt基于定時(shí)器實(shí)現(xiàn)動(dòng)圖展示效果

    這篇文章主要為大家詳細(xì)介紹了Qt基于定時(shí)器實(shí)現(xiàn)簡(jiǎn)單動(dòng)圖展示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C/C++整數(shù)乘積的溢出問(wèn)題的解決

    C/C++整數(shù)乘積的溢出問(wèn)題的解決

    整數(shù)乘積的溢出問(wèn)題是指兩個(gè)整數(shù)相乘得到的結(jié)果超過(guò)了所能表示的數(shù)據(jù)類(lèi)型的范圍,本文給大家介紹了C/C++整數(shù)乘積的溢出問(wèn)題的解決,需要的朋友可以參考下
    2024-02-02

最新評(píng)論

巴马| 渑池县| 黑水县| 赤峰市| 湘乡市| 松潘县| 乐业县| 天峻县| 正定县| 抚顺县| 阳泉市| 大荔县| 金沙县| 阿克苏市| 襄汾县| 通榆县| 泰兴市| 梅河口市| 来安县| 永城市| 呼玛县| 化德县| 内黄县| 遂川县| 翁牛特旗| 成都市| 崇文区| 德昌县| 中山市| 柯坪县| 武冈市| 鸡泽县| 城口县| 贡觉县| 济宁市| 彰化市| 蒙山县| 武安市| 昌邑市| 婺源县| 泰州市|