【2023.03.20】P4710 「物理」平抛运动

题目传送门:

【洛谷】P4710 [物理]平抛运动

Step 1:前置芝士

您需要知道并了解以下芝士:

  1. 数学:
    • 三角函数;
  2. 物理:
    • 加速度公式;
    • 位移公式;

那么如果您并不了解以上芝士,那么请继续向下看;如果您已经掌握以上芝士,那么请跳至“Step 2”。

三角函数讲解:

注意,本题为物理题解,故不会放出三角函数作图过程、函数图像、拓展公式、常考题型、易错题型等,若需要请参考以下链接:

Bilibili: Link

WeChat: Link

如图,三角形ABC为直角三角形,∠B为直角,∠A为θ。其中线段AB长为c,线段BC长为a,线段AC长为b

image

那么对于直角三角形,它有六种三角函数:

  • 正弦(sin)
  • 余弦(cos)
  • 正切(tan)
  • 余切(cot)
  • 正割(sec)
  • 余割(csc)

那他们都等于什么呢:

sin ⁡ θ = 对边 斜边 = a b ; \sin θ = \frac{对边}{斜边} = \frac{a}{b}; sinθ=斜边对边=ba;

cos ⁡ θ = 邻边 斜边 = c b ; \cos θ = \frac{邻边}{斜边} = \frac{c}{b}; cosθ=斜边邻边=bc;

tan ⁡ θ = 对边 邻边 = a c ; \tan θ = \frac{对边}{邻边} = \frac{a}{c}; tanθ=邻边对边=ca;

cot ⁡ θ = 邻边 对边 = c a ; \cot θ = \frac{邻边}{对边} = \frac{c}{a}; cotθ=对边邻边=ac;

sec ⁡ θ = 斜边 邻边 = b c ; \sec θ = \frac{斜边}{邻边} = \frac{b}{c}; secθ=邻边斜边=cb;

csc ⁡ θ = 斜边 对边 = b a ; \csc θ = \frac{斜边}{对边} = \frac{b}{a}; cscθ=对边斜边=ab;

好了,关于三角函数知道这么多已经足够我们做这道题了。

加速度公式:

a = ( v t − v 0 ) t ; a = \frac{(v_t - v_0)}{t}; a=t(vtv0);

其中, a a a为加速度; v t v_t vt为最终速度; v 0 v_0 v0为初始速度; t t t为运动时间;

位移公式:

s = v 0 × t + a × t 2 2 ; s = v_0 \times t + \frac{a \times t ^ 2}{2}; s=v0×t+2a×t2;

其中, a a a为加速度; v 0 v_0 v0为初始速度; t t t为运动时间; s s s为位移;


Step 2:正文

先看题目:

一个可以视为质点的小球在点 A ( x 0 , y 0 ) A(x_0, y_0) A(x0,y0) 沿 x x x 轴负方向以某速度抛出,无视除重力外的所有阻力,最后恰好以速度 v v v 砸到 B ( 0 , 0 ) B(0, 0) B(0,0) 点。

易知,小球是在做平抛运动(看题目就知道了,那么我们可以将平抛运动看做一个水平方向的匀速直线运动(无视所有阻力,则在水平方向不受力)和一个竖直方向的匀加速运动。在这个匀加速运动中,它的初速度为零,并且只受重力作用,所以是在做自由落体运动。

那么,我们就把题目给出的速度分成两个速度:水平方向的速度与竖直方向的速度。对于水平方向的速度,它是恒不变的,因为本题目无视所有阻力;而对于竖直方向的速度,它是在匀速增加的(重力加速度)。

看到题目是给的角度那么我们就应该想到三角函数。就按题目中最后一个图:

image

按上图说,我们可以求出竖直方向的最终速度vy

v y = v cos ⁡ θ vy = v \cos θ vy=vcosθ

又有重力加速度的公式:

v = t g v = tg v=tg

题目已经求出了竖直方向最终速度,那么我们就可以用它求出时间,设重力加速度为g,则有:

t = v y g t = \frac{vy}{g} t=gvy

酱紫我们就可以这么表示时间t

t = v cos ⁡ θ g t = \frac{v \cos θ}{g} t=gvcosθ

再由位移公式求出竖直方向的位移即纵坐标就好啦:

s y = v 0 ( 即为零 ) × v cos ⁡ θ g + g × ( v cos ⁡ θ g ) 2 2 sy = v0(即为零) \times \frac{v \cos θ}{g} + \frac{g \times (\frac{v \cos θ}{g})^2}{2} sy=v0(即为零)×gvcosθ+2g×(gvcosθ)2

分析完竖直方向,我们再看看水平方向。上面已经解释过了水平方向是在做匀速直线运动,那最终的水平方向位移即横坐标sx:

s x = v x × t sx = vx \times t sx=vx×t

同时它也可以酱紫表示:

s x = v x × v cos ⁡ θ g sx = vx \times \frac{v \cos θ}{g} sx=vx×gvcosθ

我们再去分析水平方向的速度,继续按介个图说:

image

显然良心出题人已经帮我们标出来了:

v x = v sin ⁡ θ vx = v \sin θ vx=vsinθ

那我们再将这个式子代入sx的式子中:

s x = v sin ⁡ θ × v cos ⁡ θ g sx = v \sin θ \times \frac{v \cos θ}{g} sx=vsinθ×gvcosθ

我们就又可以表示出横坐标啦!下面就是码代码就好啦。

Step 3:代码

直接放代码了就:

Link
#include <bits/stdc++.h>
using namespace std;
double sx,sy;
double vx,vy;
double v,d,g,t;
int main(){
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	cin>>v;
	cin>>d;
	g=10.0;
	t=v*cos(d)*1.0/g;
	sy=(g*t*t)/2;
	sx=v*sin(d);
	sx*=t;
	cout<<sx<<" "<<sy;
	//fclose(stdin);
	//fclose(stdout);
	return 0;
}

建议不要在使用double类型时使用pow,就是TM这么写炸的。

就酱紫吧。

话说重力是阻力的么

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值