日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

EasyX實現自由落體小球_C 語言

作者:石小浪? ? 更新時間: 2022-06-02 編程語言

本文實例為大家分享了EasyX實現自由落體小球的具體代碼,供大家參考,具體內容如下

1. 要實現自由落體,首先得實現勻速下落

#include<graphics.h> ? ?//圖形庫頭文件
#include<conio.h>
#include<cstdio>
#define WIDTH 400 ? //窗口寬度
#define HEIGHT 600 ? //窗口高度

int main()
{
?? ?//定義并初始化小球坐標
?? ?float ballX = WIDTH / 2;
?? ?float ballY = 10;
?? ?//創建窗口
?? ?initgraph(WIDTH, HEIGHT);
?? ?while (1)
?? ?{
?? ??? ?ballY++; ? ? ? ?//改變小球的y坐標
?? ??? ?cleardevice(); ?//清屏
?? ??? ?fillcircle(ballX, ballY, 10); ?//繪制小球
?? ??? ?Sleep(10); ? ? ? ? ? ?//暫停10毫秒
?? ?}

?? ?_getch(); ? ? ? ? //等待按鍵輸入(卡屏作用)
?? ?closegraph(); ? ? ?//關閉窗口

?? ?return 0;
}

2.然后在勻速的基礎上實現加速運動
(只需要實現y方向的增量不斷改變即可)

#include<graphics.h>
#include<conio.h>
#include<cstdio>
#define WIDTH 400 ? //窗口寬度
#define HEIGHT 600 ? //窗口高度

int main()
{
?? ?//定義并初始化小球坐標
?? ?float ballX = WIDTH / 2;
?? ?float ballY = 10;
?? ?//定義小球初始下落速度
?? ?float vy = 0.0;
?? ?//定義小球下落加速度
?? ?float g = 0.5; ? ? ? //y方向的增量
?? ?//創建窗口
?? ?initgraph(WIDTH, HEIGHT);
?? ?while (1)
?? ?{
?? ??? ?//實現加速下落
?? ??? ?//改變下落速度
?? ??? ?vy = vy + g;
?? ??? ?//改變Y方向坐標
?? ??? ?ballY = ballY + vy;
?? ??? ?//做反彈處理
?? ??? ?if (ballY >= 590)
?? ??? ??? ?vy = -0.95*vy; ? //改變vy的方向,加一點阻力
?? ??? ?//做下邊界處理
?? ??? ?if (ballY > 590)
?? ??? ??? ?ballY = 590;
?? ??? ?cleardevice(); ?//清屏
?? ??? ?fillcircle(ballX, ballY, 10); ?//繪制小球
?? ??? ?Sleep(100); ? ? ? ? ? ?//暫停100毫秒
?? ?}

?? ?_getch();
?? ?closegraph();

?? ?return 0;
}

要點一: 通過增量改變每一次 y 方向上值改變的不同
要點二: 下邊界處理, 當 y >窗口高度 - 小球半徑 時需要將 y 坐標置為 窗口高度 - 小球半徑
要點三: vy的反向

原文鏈接:https://blog.csdn.net/ShiXiAoLaNga/article/details/117359474

欄目分類
最近更新