C言語で車のタイヤの回転アニメーション効果を実装する方法
車輪の回転アニメーションを作成するには、タイマーまたはループを使用して車輪の角度を継続的に更新し、新しい車輪を画面に描画する描画関数を呼び出します。
以下、簡単なサンプルコードを示します。
#include <stdio.h>
#include <graphics.h>
// 车轮的半径
#define WHEEL_RADIUS 50
// 车轮的颜色
#define WHEEL_COLOR RED
// 车身的颜色
#define BODY_COLOR YELLOW
// 车轮的中心点坐标
int wheel_center_x = 200;
int wheel_center_y = 200;
// 车轮的当前角度
int wheel_angle = 0;
// 绘制车身
void drawBody() {
// 绘制车身矩形
rectangle(100, 100, 300, 200);
// 填充车身颜色
setfillcolor(BODY_COLOR);
floodfill(200, 150, WHITE);
}
// 绘制车轮
void drawWheel() {
// 计算车轮的当前位置
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);
// 绘制车轮圆形
circle(wheel_x, wheel_y, WHEEL_RADIUS);
// 填充车轮颜色
setfillcolor(WHEEL_COLOR);
floodfill(wheel_x, wheel_y, WHITE);
}
int main() {
// 初始化绘图环境
initgraph(640, 480);
// 绘制车身
drawBody();
// 循环绘制车轮
while (1) {
// 延时一段时间,控制车轮旋转速度
delay(50);
// 清空车轮的上一帧
setfillcolor(WHITE);
drawWheel();
// 更新车轮的角度
wheel_angle = (wheel_angle + 10) % 360;
// 绘制车轮的当前帧
drawWheel();
}
// 关闭绘图环境
closegraph();
return 0;
}
このサンプルコードでは、EasyXグラフィックライブラリを使用して描画機能を実装します。最初に、drawBody関数で車体を描き、drawWheel関数で車輪を描画して色を塗ります。メイン関数では、ループを使用して車輪が継続的に回転する効果を実装します。このとき、delay関数は回転速度を制御するために使用します。各フレームの開始時に、まず前のフレームの車輪をクリアし、次に車輪の角度を更新し、最後に現在のフレームの車輪を描画します。描画関数circleは円の描画に使用され、rectangleは矩形の描画に使用され、setfillcolorは塗りつぶしの色の設定に使用され、floodfillは領域の色の塗りつぶしに使用します。