C++图形开发(7):能进行抛物线运动且触墙能反弹的小球

53 篇文章 3 订阅
19 篇文章 8 订阅
这篇文章介绍如何在C++中创建一个模拟小球抛物线运动并实现碰撞墙面后的反弹效果。通过定义x轴和y轴的位置、速度及重力常数,小球可以展现出真实的物理动态。在碰到屏幕边界时,小球的速度方向会发生反转,形成反弹效果。
摘要由CSDN通过智能技术生成

今天来实现一下触墙能反弹的小球、

我们之前所实现的都只是小球的上下,也就是y轴方向的运动(详见:C++图形开发(6):落下后能弹起的小球,那么要使小球能够呈抛物线状运动,我们就需要让x轴方向也跟着运动起来。

也就是:
在这里插入图片描述
抛物线运动也就是:
在这里插入图片描述

那么我们还要实现一个x轴的运动,显然就也需要定义x轴上的时间和速度,所以我们需要定义的变量为:

double x = 100;
double y = 100;
double vx = 2;
double vy = 0;
double g = 0.9832;

因为x方向小球没有受力,所以vx的值是不变的,但y方向 小球会受到一个向下的重力,所以要做改变(其实还会受到一个向上的阻力,这里忽略不计了)

整段代码:

#include<graphics.h> 
#include<conio.h>
#include<stdio.h>

int main() {
	double x = 100;
	double y = 100;
	double vx = 2;
	double vy = 0;
	double g = 0.9832;
	initgraph(600, 600);
	while (1) {
		vy = vy + g;
		y = y + vy;
		x = x + vx;
		cleardevice();
		fillcircle(x, y, 20);
		Sleep(10);
		if (y >= 580 || y <= 20) {
			vy = -vy;
		}
		if (x >= 580 || x <= 20) {
			vx = -vx;
		}
	}
	_getch();
	closegraph();
}

效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值