首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言實例練習

C語言練習實例59:TC繪製旋態線條動畫(綜合圖形示例1)

     編輯:C 語言實例練習

C語言練習實例59:TC繪製旋態線條動畫(綜合圖形示例1)

本實例繪製一個旋轉的「風車」狀線條動畫,包含同心圓、放射線、填充效果。

程序分析

  • 定義常量 PAI, B(縱橫比修正)。
  • 繪製三個同心圓,16 條放射線(按橢圓參數方程計算端點)。
  • 外層循環 k 控制旋轉角度偏移,內層重繪放射線產生動畫。
  • 使用 floodfill 填充區域,settextstyle 輸出文字。

源代碼

// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#define PAI 3.1415926
#define B 0.809
#include "graphics.h"
#include "math.h"

int main() {
    int i, j, k, x0, y0, x, y, driver, mode;
    float a;
    driver = CGA; mode = CGAC0;
    initgraph(&driver, &mode, "");
    setcolor(3); setbkcolor(GREEN);
    x0 = 150; y0 = 100;
    circle(x0, y0, 10); circle(x0, y0, 20); circle(x0, y0, 50);
    for (i = 0; i < 16; i++) {
        a = (2*PAI/16)*i;
        x = ceil(x0 + 48*cos(a));
        y = ceil(y0 + 48*sin(a)*B);
        setcolor(2); line(x0, y0, x, y);
    }
    setcolor(3); circle(x0, y0, 60);
    settextstyle(DEFAULT_FONT, HORIZ_DIR, 0);
    outtextxy(10, 170, "press a key");
    getch();
    setfillstyle(HATCH_FILL, YELLOW);
    floodfill(202, 100, WHITE);
    getch();
    for (k = 0; k <= 500; k++) {
        setcolor(3);
        for (i = 0; i <= 16; i++) {
            a = (2*PAI/16)*i + (2*PAI/180)*k;
            x = ceil(x0 + 48*cos(a));
            y = ceil(y0 + 48 + sin(a)*B);
            setcolor(2); line(x0, y0, x, y);
        }
        for (j = 1; j <= 50; j++) {
            a = (2*PAI/16)*i + (2*PAI/180)*k - 1;
            x = ceil(x0 + 48*cos(a));
            y = ceil(y0 + 48*sin(a)*B);
            line(x0, y0, x, y);
        }
    }
    restorecrtmode();
}

說明

代碼中有部分邏輯錯誤(如第二個動畫循環中 i 作用域問題),僅作為 TC 圖形函數調用演示參考。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved