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

使用C語言來畫出皮卡丘的教程(附代碼)

 更新時間:2024年01月13日 14:48:30   投稿:yin  
在C語言中使用圖形庫畫圖需要引入graphics.h庫,我們可以通過代碼實現(xiàn)畫出一個可愛的皮卡丘,將皮卡丘的繪制分為以下部分:耳朵、臉部、眼睛、嘴巴、手臂、腿部、尾巴,下面我們就來學(xué)習(xí)如何使用C語言編寫畫皮卡丘的代碼

在C語言中使用圖形庫畫圖需要引入graphics.h庫,我們可以通過代碼實現(xiàn)畫出一個可愛的皮卡丘,將皮卡丘的繪制分為以下部分:耳朵、臉部、眼睛、嘴巴、手臂、腿部、尾巴,下面我們就來學(xué)習(xí)如何使用C語言編寫畫皮卡丘的代碼。

1. 簡介

皮卡丘,是游戲《寶可夢》中的一種虛構(gòu)生物。通過使用C語言的圖形庫,我們可以通過代碼實現(xiàn)畫出一個可愛的皮卡丘。下面,我們就來學(xué)習(xí)如何使用C語言編寫畫皮卡丘的代碼。

2. 環(huán)境配置

2.1. 需要的庫

在C語言中使用圖形庫畫圖需要引入graphics.h庫,該庫是Turbo C++ IDE自帶的庫,所以在Windows平臺下,我們需要安裝Turbo C++編譯器。

2.2. 安裝Turbo C++

可以使用Turbo C++ IDE 3.2版或后續(xù)版本,這種IDE已經(jīng)停止開發(fā)多年,但是它包含了一個非常好用的圖形庫graphics.h。我們可以從以下網(wǎng)址中下載到Turbo C++ IDE:https://turboc.codeplex.com/

安裝完成之后,我們就可以開始編寫繪制皮卡丘的代碼。

3. 畫皮卡丘

我們可以將皮卡丘的繪制分為以下部分:耳朵、臉部、眼睛、嘴巴、手臂、腿部、尾巴。下面,我們按照這些部分逐一講解繪制的過程和代碼實現(xiàn)。

3.1. 耳朵

皮卡丘的耳朵是黃色的,上面有黑色的線條勾勒出輪廓。我們可以通過繪制一個圓的方式來制作耳朵,然后在圓的基礎(chǔ)上通過畫線條來勾勒出耳朵的輪廓。

// 畫右耳朵
setfillstyle(SOLID_FILL, YELLOW);  // 設(shè)置填充顏色
circle(325, 135, 40);  // 畫圓
floodfill(325, 135, WHITE);  // 填充顏色
// 畫右耳朵輪廓
setcolor(BLACK);  // 設(shè)置畫線條的顏色
arc(325, 135, 50, 140, 40);  // 畫圓弧
arc(345, 109, 315, 160, 35);

我們可以在畫左耳朵的時候使用 symmetry function 將繪制左右耳朵的代碼合并。

3.2. 臉部

皮卡丘的臉部是黃色的,下巴部分往下凸出,我們可以通過畫圓來制作皮卡丘的臉部。

同時,臉的底部還需要加上兩個圓弧勾勒出下巴的形狀。

// 畫臉
setfillstyle(SOLID_FILL, YELLOW);  // 設(shè)置填充顏色
circle(325, 220, 70);  // 畫圓
floodfill(325, 220, WHITE);  // 填充顏色
// 畫下巴
setcolor(BLACK);  // 設(shè)置畫線條的顏色
arc(325, 230, 0, 180, 35);  // 畫圓弧
arc(325, 230, 180, 360, 35);

通過調(diào)整圓的半徑,可以實現(xiàn)分別畫大臉和小臉的效果。

3.3. 眼睛

這里我們需要繪制兩個相同的眼睛,眼睛有黑色邊框,中間填充成白色,接著在白色中間描繪出黑色的瞳孔。我們可以通過畫圓和畫線條的方式來完成繪制。

當(dāng)然,如果你覺得眼睛不夠可愛,可以為它加上眼皮和睫毛。

// 畫眼睛
setcolor(BLACK);  // 設(shè)置畫線條的顏色
circle(276, 189, 7);   // 畫圓
circle(276, 189, 2);
setfillstyle(SOLID_FILL, WHITE);  // 設(shè)置填充顏色
circle(276, 189, 6);  // 畫圓
floodfill(276, 189, BLACK);  // 填充顏色
setcolor(BLACK);
circle(276, 189, 4);
// 畫右眼
setcolor(BLACK);
circle(374, 189, 7);
circle(374, 189, 2);
setfillstyle(SOLID_FILL, WHITE);
circle(374, 189, 6);
floodfill(374, 189, BLACK);
setcolor(BLACK);
circle(374, 189, 4);

我們可以通過設(shè)置畫布顏色,來給眼睛加上眼皮。

// 畫眼皮
setfillstyle(SOLID_FILL,RGB(250, 195, 165));
pieslice(276, 208, 267, 293, 25);  // 畫上眼皮
pieslice(374, 208, 247, 272, 25);
setfillstyle(SOLID_FILL,BLACK);
pieslice(276, 215, 267, 293, 25);  // 畫下眼皮
pieslice(374, 215, 247, 272, 25);

3.4. 嘴巴

皮卡丘的嘴巴是粉紅色的,嘴巴總體呈現(xiàn)為“∩ ”的形態(tài),嘴唇勾勒出一個“M”的形狀。我們可以通過畫圓和畫線條來完成嘴巴的繪制。

// 畫嘴巴
setfillstyle(SOLID_FILL, RGB(248, 118, 91));
pieslice(325, 250, 0, 180, 32);  // 畫弧形
setcolor(BLACK);
arc(325, 250, 0, 180, 32);
// 畫嘴唇
setfillstyle(SOLID_FILL, RGB(241, 65, 103));
pieslice(325, 250, 0, 90, 32);
pieslice(325, 250, 180, 270, 32);

3.5. 手臂

繪制皮卡丘的手臂需要繪制兩只手臂,我們可以使用正弦函數(shù)和余弦函數(shù)來實現(xiàn)手臂的曲線,然后連接點畫成曲線。

// 畫左手臂
setcolor(BLACK);
moveto(250, 270);
for(int i = 0; i <= 90; i++) {
    double angle = i * PI / 180.0;
    int x = (int)(250 + 40 * cos(angle));
    int y = (int)(270 + 30 * sin(angle));
    lineto(x, y);
}
// 畫右手臂
moveto(400, 270);
for(int i = 0; i <= 90; i++) {
    double angle = i * PI / 180.0;
    int x = (int)(400 + 40 * cos(angle));
    int y = (int)(270 + 30 * sin(angle));
    lineto(x, y);
}
// 連接左右手臂
moveto(250, 270);
lineto(400, 270);

3.6. 腿部

皮卡丘的腿有兩只,我們可以參考手臂的繪制方式來繪制腿部。

// 畫左腿
moveto(300, 340);
for(int i = 0; i <= 90; i++) {
    double angle = i * PI / 180.0;
    int x = (int)(300 + 20 * cos(angle));
    int y = (int)(340 + 30 * sin(angle));
    lineto(x, y);
}
// 畫右腿
moveto(350, 340);
for(int i = 0; i <= 90; i++) {
    double angle = i * PI / 180.0;
    int x = (int)(350 + 20 * cos(angle));
    int y = (int)(340 + 30 * sin(angle));
    lineto(x, y);
}
// 連接左右腿
moveto(300, 340);
lineto(350, 340);

3.7. 尾巴

皮卡丘的尾巴是黃色的,尾巴末端呈現(xiàn)閃電狀,我們可以通過畫線條的方式來完成尾巴的繪制。

// 畫尾巴
setcolor(BLACK);
moveto(150, 310);
lineto(180, 297);
lineto(190, 310);
lineto(190, 320);
lineto(180, 333);
lineto(150, 320);

4. 總代碼

下面是完整的繪制皮卡丘的代碼。

#include<graphics.h>
#include<math.h>
#define PI 3.141592654
int main() {
    initwindow(600, 450); // 創(chuàng)建畫布
    // 畫右耳朵
    setfillstyle(SOLID_FILL, YELLOW); 
    circle(325, 135, 40);
    floodfill(325, 135, WHITE);
    // 畫右耳朵輪廓
    setcolor(BLACK);
    arc(325, 135, 50, 140, 40);
    arc(345, 109, 315, 160, 35);
    // 畫左耳朵
    setfillstyle(SOLID_FILL, YELLOW); 
    circle(225, 135, 40);
    floodfill(225, 135, WHITE);
    // 畫左耳朵輪廓
    setcolor(BLACK);
    arc(225, 135, 40, 130, 40);
    arc(195, 109, 20, 50, 35);
    // 畫臉
    setfillstyle(SOLID_FILL, YELLOW);
    circle(325, 220, 70);
    floodfill(325, 220, WHITE);
    // 畫下巴
    setcolor(BLACK);
    arc(325, 230, 0, 180, 35);
    arc(325, 230, 180, 360, 35);
    // 畫左眼
    setcolor(BLACK);
    circle(276, 189, 7);
    circle(276, 189, 2);
    setfillstyle(SOLID_FILL, WHITE);
    circle(276, 189, 6);
    floodfill(276, 189, BLACK);
    setcolor(BLACK);
    circle(276, 189, 4);
     // 畫右眼
    setcolor(BLACK);
    circle(374, 189, 7);
    circle(374, 189, 2);
    setfillstyle(SOLID_FILL, WHITE);
    circle(374, 189, 6);
    floodfill(374, 189, BLACK);
    setcolor(BLACK);
    circle(374, 189, 4);
    // 畫眼皮
    setfillstyle(SOLID_FILL,RGB(250, 195, 165));
    pieslice(276, 208, 267, 293, 25);
    pieslice(374, 208, 247, 272, 25);
    setfillstyle(SOLID_FILL,BLACK);
    pieslice(276, 215, 267, 293, 25);
    pieslice(374, 215, 247, 272, 25);
     // 畫嘴巴
    setfillstyle(SOLID_FILL, RGB(248, 118, 91));
    pieslice(325, 250, 0, 180, 32);
    setcolor(BLACK);
    arc(325, 250, 0, 180, 32);
    // 畫嘴唇
    setfillstyle(SOLID_FILL, RGB(241, 65, 103));
    pieslice(325, 250, 0, 90, 32);
    pieslice(325, 250, 180, 270, 32);
    // 畫左手臂
    setcolor(BLACK);
    moveto(250, 270);
    for(int i = 0; i <= 90; i++) {
        double angle = i * PI / 180.0;
        int x = (int)(250 + 40 * cos(angle));
        int y = (int)(270 + 30 * sin(angle));
        lineto(x, y);
    }
    // 畫右手臂
    moveto(400, 270);
    for(int i = 0; i <= 90; i++) {
        double angle = i * PI / 180.0;
        int x = (int)(400 + 40 * cos(angle));
        int y = (int)(270 + 30 * sin(angle));
        lineto(x, y);
    }
    // 連接左右手臂
    moveto(250, 270);
    lineto(400, 270);
    // 畫左腿
    moveto(300, 340);
    for(int i = 0; i <= 90; i++) {
        double angle = i * PI / 180.0;
        int x = (int)(300 + 20 * cos(angle));
        int y = (int)(340 + 30 * sin(angle));
        lineto(x, y);
    }
    // 畫右腿
    moveto(350, 340);
    for(int i = 0; i <= 90; i++) {
        double angle = i * PI / 180.0;
        int x = (int)(350 + 20 * cos(angle));
        int y = (int)(340 + 30 * sin(angle));
        lineto(x, y);
    }
    // 連接左右腿
    moveto(300, 340);
    lineto(350, 340);
    // 畫尾巴
    setcolor(BLACK);
    moveto(150, 310);
    lineto(180, 297);
    lineto(190, 310);
    lineto(190, 320);
    lineto(180, 333);
    lineto(150, 320);
    getch(); 
    closegraph(); // 關(guān)閉畫布    
    return 0;
}

使用上述代碼,就可以畫出一個可愛的皮卡丘了!

5. 總結(jié)

通過使用C語言繪制皮卡丘,我們了解了C語言調(diào)用圖形庫進(jìn)行圖形。

到此這篇關(guān)于使用C語言來畫出皮卡丘的教程附代碼的文章就介紹到這了,更多相關(guān)C語言畫皮卡丘內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++有符號和無符號之間的轉(zhuǎn)換問題

    C++有符號和無符號之間的轉(zhuǎn)換問題

    在開發(fā)中經(jīng)常會遇到有符號和無符號之間的轉(zhuǎn)換問題,如果不清楚問題根源,很難解決bug,今天小編通過本文給大家分享c++有符號無符號轉(zhuǎn)換問題,需要的朋友參考下
    2021-07-07
  • C語言數(shù)組實現(xiàn)掃雷游戲

    C語言數(shù)組實現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語言數(shù)組實現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C++中DeviceIoCteatol的用法實例

    C++中DeviceIoCteatol的用法實例

    這篇文章主要介紹了C++中DeviceIoCteatol的用法實例,對于學(xué)習(xí)C++針對硬件的操作有一定的參考借鑒價值,需要的朋友可以參考下
    2014-10-10
  • VSCode C/C++多文件編譯配置小結(jié)

    VSCode C/C++多文件編譯配置小結(jié)

    本文主要介紹了VSCode C/C++多文件編譯配置小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • C++中的Lambda表達(dá)式及表達(dá)式語句

    C++中的Lambda表達(dá)式及表達(dá)式語句

    這篇文章主要介紹了C++中的Lambda表達(dá)式及表達(dá)式語句,表達(dá)式這個概念在C++中屬于比較細(xì)節(jié)的知識了,很多時候我們只用知道怎么用,對于編譯器內(nèi)部怎么處理我們并不關(guān)心;并且關(guān)于左值和右值這個概念,也是C++比較深的一個小知識點,需要的朋友可以參考一下
    2021-12-12
  • 基于C語言構(gòu)建一個獨(dú)立棧協(xié)程和共享棧協(xié)程的任務(wù)調(diào)度系統(tǒng)

    基于C語言構(gòu)建一個獨(dú)立棧協(xié)程和共享棧協(xié)程的任務(wù)調(diào)度系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了如何基于C語言構(gòu)建一個獨(dú)立棧協(xié)程和共享棧協(xié)程的任務(wù)調(diào)度系統(tǒng),文中的示例代碼講解詳細(xì),需要的可以參考下
    2024-02-02
  • 聊聊C++ 運(yùn)算符重載知識

    聊聊C++ 運(yùn)算符重載知識

    運(yùn)算符重載是一種形式的C++多態(tài),重載運(yùn)算符可以使代碼看起來更加自然,下面通過例子介紹下C++ 運(yùn)算符重載知識,感興趣的朋友一起看看吧
    2021-11-11
  • C語言實現(xiàn)計算雙色球的中獎率

    C語言實現(xiàn)計算雙色球的中獎率

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實現(xiàn)計算雙色球的中獎率,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-12-12
  • 用C++實現(xiàn)單向循環(huán)鏈表的解決方法

    用C++實現(xiàn)單向循環(huán)鏈表的解決方法

    本篇文章是對用C++實現(xiàn)單向循環(huán)鏈表的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 詳解C語言中index()函數(shù)和rindex()函數(shù)的用法

    詳解C語言中index()函數(shù)和rindex()函數(shù)的用法

    這篇文章主要介紹了C語言中index()函數(shù)和rndex()函數(shù)的用法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,要的朋友可以參考下
    2015-08-08

最新評論

阳山县| 锡林郭勒盟| 辽阳县| 靖州| 阿鲁科尔沁旗| 双峰县| 团风县| 武夷山市| 西平县| 永修县| 义乌市| 二连浩特市| 雷州市| 象山县| 娱乐| 柞水县| 格尔木市| 江油市| 临泉县| 尚义县| 罗平县| 邵武市| 南和县| 汶川县| 磐石市| 墨竹工卡县| 仲巴县| 桓台县| 阿克苏市| 会昌县| 和政县| 华容县| 宣化县| 东源县| 镇宁| 岳阳市| 福贡县| 乌拉特中旗| 镇雄县| 东山县| 云安县|