網(wǎng)站首頁 編程語言 正文
本文實(shí)例為大家分享了EasyX實(shí)現(xiàn)自由落體小球的具體代碼,供大家參考,具體內(nèi)容如下
1. 要實(shí)現(xiàn)自由落體,首先得實(shí)現(xiàn)勻速下落
#include<graphics.h> ? ?//圖形庫頭文件 #include<conio.h> #include<cstdio> #define WIDTH 400 ? //窗口寬度 #define HEIGHT 600 ? //窗口高度 int main() { ?? ?//定義并初始化小球坐標(biāo) ?? ?float ballX = WIDTH / 2; ?? ?float ballY = 10; ?? ?//創(chuàng)建窗口 ?? ?initgraph(WIDTH, HEIGHT); ?? ?while (1) ?? ?{ ?? ??? ?ballY++; ? ? ? ?//改變小球的y坐標(biāo) ?? ??? ?cleardevice(); ?//清屏 ?? ??? ?fillcircle(ballX, ballY, 10); ?//繪制小球 ?? ??? ?Sleep(10); ? ? ? ? ? ?//暫停10毫秒 ?? ?} ?? ?_getch(); ? ? ? ? //等待按鍵輸入(卡屏作用) ?? ?closegraph(); ? ? ?//關(guān)閉窗口 ?? ?return 0; }
2.然后在勻速的基礎(chǔ)上實(shí)現(xiàn)加速運(yùn)動
(只需要實(shí)現(xiàn)y方向的增量不斷改變即可)
#include<graphics.h> #include<conio.h> #include<cstdio> #define WIDTH 400 ? //窗口寬度 #define HEIGHT 600 ? //窗口高度 int main() { ?? ?//定義并初始化小球坐標(biāo) ?? ?float ballX = WIDTH / 2; ?? ?float ballY = 10; ?? ?//定義小球初始下落速度 ?? ?float vy = 0.0; ?? ?//定義小球下落加速度 ?? ?float g = 0.5; ? ? ? //y方向的增量 ?? ?//創(chuàng)建窗口 ?? ?initgraph(WIDTH, HEIGHT); ?? ?while (1) ?? ?{ ?? ??? ?//實(shí)現(xiàn)加速下落 ?? ??? ?//改變下落速度 ?? ??? ?vy = vy + g; ?? ??? ?//改變Y方向坐標(biāo) ?? ??? ?ballY = ballY + vy; ?? ??? ?//做反彈處理 ?? ??? ?if (ballY >= 590) ?? ??? ??? ?vy = -0.95*vy; ? //改變vy的方向,加一點(diǎn)阻力 ?? ??? ?//做下邊界處理 ?? ??? ?if (ballY > 590) ?? ??? ??? ?ballY = 590; ?? ??? ?cleardevice(); ?//清屏 ?? ??? ?fillcircle(ballX, ballY, 10); ?//繪制小球 ?? ??? ?Sleep(100); ? ? ? ? ? ?//暫停100毫秒 ?? ?} ?? ?_getch(); ?? ?closegraph(); ?? ?return 0; }
要點(diǎn)一: 通過增量改變每一次 y 方向上值改變的不同
要點(diǎn)二: 下邊界處理, 當(dāng) y >窗口高度 - 小球半徑 時需要將 y 坐標(biāo)置為 窗口高度 - 小球半徑
要點(diǎn)三: vy的反向
原文鏈接:https://blog.csdn.net/ShiXiAoLaNga/article/details/117359474
相關(guān)推薦
- 2023-02-09 python如何提取xml指定內(nèi)容_python
- 2023-10-12 img標(biāo)簽使用base64圖片以及如何將圖片轉(zhuǎn)為base64格式
- 2021-12-12 簡單介紹三層架構(gòu)工作原理_C#教程
- 2022-04-18 Go中g(shù)routine通信與context控制實(shí)例詳解_Golang
- 2022-08-18 Android?Canva實(shí)現(xiàn)漸變進(jìn)度條_Android
- 2022-08-30 詳解Oracle控制文件及日志文件的管理問題_oracle
- 2022-12-23 kotlin延遲初始化和密封類詳細(xì)講解_Android
- 2022-03-16 c#語言入門類型和成員_C#教程
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支