要實(shí)現(xiàn)車(chē)輪旋轉(zhuǎn)動(dòng)畫(huà)效果,可以借助計(jì)時(shí)器或者循環(huán)來(lái)不斷更新車(chē)輪的角度,并通過(guò)繪圖函數(shù)將更新后的車(chē)輪繪制到屏幕上。
下面是一個(gè)簡(jiǎn)單的示例代碼:
#include <stdio.h>
#include <graphics.h>
// 車(chē)輪的半徑
#define WHEEL_RADIUS 50
// 車(chē)輪的顏色
#define WHEEL_COLOR RED
// 車(chē)身的顏色
#define BODY_COLOR YELLOW
// 車(chē)輪的中心點(diǎn)坐標(biāo)
int wheel_center_x = 200;
int wheel_center_y = 200;
// 車(chē)輪的當(dāng)前角度
int wheel_angle = 0;
// 繪制車(chē)身
void drawBody() {
// 繪制車(chē)身矩形
rectangle(100, 100, 300, 200);
// 填充車(chē)身顏色
setfillcolor(BODY_COLOR);
floodfill(200, 150, WHITE);
}
// 繪制車(chē)輪
void drawWheel() {
// 計(jì)算車(chē)輪的當(dāng)前位置
int wheel_x = wheel_center_x + WHEEL_RADIUS * cos(wheel_angle * 3.14 / 180);
int wheel_y = wheel_center_y + WHEEL_RADIUS * sin(wheel_angle * 3.14 / 180);
// 繪制車(chē)輪圓形
circle(wheel_x, wheel_y, WHEEL_RADIUS);
// 填充車(chē)輪顏色
setfillcolor(WHEEL_COLOR);
floodfill(wheel_x, wheel_y, WHITE);
}
int main() {
// 初始化繪圖環(huán)境
initgraph(640, 480);
// 繪制車(chē)身
drawBody();
// 循環(huán)繪制車(chē)輪
while (1) {
// 延時(shí)一段時(shí)間,控制車(chē)輪旋轉(zhuǎn)速度
delay(50);
// 清空車(chē)輪的上一幀
setfillcolor(WHITE);
drawWheel();
// 更新車(chē)輪的角度
wheel_angle = (wheel_angle + 10) % 360;
// 繪制車(chē)輪的當(dāng)前幀
drawWheel();
}
// 關(guān)閉繪圖環(huán)境
closegraph();
return 0;
}
在這個(gè)示例代碼中,我們使用了EasyX圖形庫(kù)來(lái)實(shí)現(xiàn)繪圖功能。首先,在drawBody
函數(shù)中繪制了車(chē)身,然后在drawWheel
函數(shù)中繪制車(chē)輪并填充顏色。在主函數(shù)中,我們使用一個(gè)循環(huán)來(lái)實(shí)現(xiàn)車(chē)輪的不斷旋轉(zhuǎn)效果,其中delay
函數(shù)用來(lái)控制旋轉(zhuǎn)速度。每一幀開(kāi)始時(shí),先清空上一幀的車(chē)輪,然后更新車(chē)輪的角度,最后繪制當(dāng)前幀的車(chē)輪。繪圖函數(shù)circle
用來(lái)繪制圓形,rectangle
用來(lái)繪制矩形,setfillcolor
用來(lái)設(shè)置填充顏色,floodfill
用來(lái)填充區(qū)域顏色。