整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

集齐十五个DEMO的CSS3动画图文教程

文主要内容

  • 过渡:transition
  • 2D 转换 transform
  • 3D 转换 transform
  • 动画:animation

过渡:transition

transition的中文含义是过渡。过渡是CSS3中具有颠覆性的一个特征,可以实现元素不同状态间的平滑过渡(补间动画),经常用来制作动画效果。

  • 补间动画:自动完成从起始状态到终止状态的的过渡。不用管中间的状态。
  • 帧动画:通过一帧一帧的画面按照固定顺序和速度播放。如电影胶片。

transition 包括以下属性:

  • transition-property: all; 如果希望所有的属性都发生过渡,就使用all。
  • transition-duration: 1s; 过渡的持续时间。
  • transition-timing-function: linear; 运动曲线。属性值可以是:
  • linear 线性
  • ease 减速
  • ease-in 加速
  • ease-out 减速
  • ease-in-out 先加速后减速
  • transition-delay: 1s; 过渡延迟。多长时间后再执行这个过渡动画。

上面的四个属性也可以写成综合属性

 transition: 让哪些属性进行过度 过渡的持续时间 运动曲线 延迟时间;
 transition: all 3s linear 0s;

其中,transition-property这个属性是尤其需要注意的,不同的属性值有不同的现象。我们来示范一下。

如果设置 transition-property: width,意思是只让盒子的宽度在变化时进行过渡。效果如下:

如果设置 transition-property: all,意思是让盒子的所有属性(包括宽度、背景色等)在变化时都进行过渡。效果如下

案例:小米商品详情

效果如下:

2D 转换

转换是 CSS3 中具有颠覆性的一个特征,可以实现元素的位移、旋转、变形、缩放,甚至支持矩阵方式。

转换再配合过渡和动画,可以取代大量早期只能靠 Flash 才可以实现的效果。

在 CSS3 当中,通过 transform 转换来实现 2D 转换或者 3D 转换。

  • 2D转换包括:缩放、移动、旋转。

1、缩放:scale

格式:

 transform: scale(x, y);
 transform: scale(2, 0.5);

参数解释: x:表示水平方向的缩放倍数。y:表示垂直方向的缩放倍数。如果只写一个值就是等比例缩放。

取值:大于1表示放大,小于1表示缩小。不能为百分比。

格式举例:

效果:

上图可以看到,给 box1 设置 2D 转换,并不会把兄弟元素挤走。

2、位移:translate

格式:

 transform: translate(水平位移, 垂直位移);
 transform: translate(-50%, -50%);

参数解释:

  • 参数为百分比,相对于自身移动。
  • 正值:向右和向下。 负值:向左和向上。如果只写一个值,则表示水平移动。

格式举例:

效果:

上图中,因为我在操作的时候,鼠标悬停后,立即进行了略微的移动,所以产生了两次动画。正确的效果应该是下面这样的

应用:让绝对定位中的盒子在父亲里居中

我们知道,如果想让一个标准流中的盒子在父亲里居中(水平方向看),可以将其设置margin: 0 auto属性。

可如果盒子是绝对定位的,此时已经脱标了,如果还想让其居中(位于父亲的正中间),可以这样做:

 div {
 width: 600px;
 height: 60px;
 position: absolute; 绝对定位的盒子
 left: 50%; 首先,让左边线居中
 top: 0;
 margin-left: -300px; 然后,向左移动宽度(600px)的一半
 }

如上方代码所示,我们先让这个宽度为600px的盒子,左边线居中,然后向左移动宽度(600px)的一半,就达到效果了。

现在,我们还可以利用偏移 translate 来做,这也是比较推荐的写法:

div {
 width: 600px;
 height: 60px;
 background-color: red;
 position: absolute; 绝对定位的盒子
 left: 50%; 首先,让左边线居中
 top: 0;
 transform: translate(-50%); 然后,利用translate,往左走自己宽度的一半【推荐写法】
 }

3、旋转:rotate

格式:

 transform: rotate(角度);
 transform: rotate(45deg);

参数解释:正值 顺时针;负值:逆时针。

效果:

注意,上方代码中,我们给盒子设置了 transform 中的 rotate 旋转,但同时还要给盒子设置 transition 过渡。如果没有这行过渡的代码,旋转会直接一步到位,效果如下:(不是我们期望的效果)

案例1:小火箭

上方代码中,我们将 transform 的两个小属性合并起来写了。

案例2:扑克牌

rotate 旋转时,默认是以盒子的正中心为坐标原点的。如果想改变旋转的坐标原点,可以用transform-origin属性。格式如下:

 transform-origin: 水平坐标 垂直坐标;
 transform-origin: 50px 50px;
 transform-origin: center bottom; //旋转时,以盒子底部的中心为坐标原点

我们来看一下 rotate 结合 transform-origin 的用法举例。

代码如下:

效果如下:

4、倾斜

3D 转换

1、旋转:rotateX、rotateY、rotateZ

3D坐标系(左手坐标系)

如上图所示,伸出左手,让拇指和食指成“L”形,大拇指向右,食指向上,中指指向前方。拇指、食指和中指分别代表X、Y、Z轴的正方向,这样我们就建立了一个左手坐标系。

浏览器的这个平面,是X轴、Y轴;垂直于浏览器的平面,是Z轴。

旋转的方向:(左手法则)

左手握住旋转轴,竖起拇指指向旋转轴的正方向,正向就是其余手指卷曲的方向

从上面这句话,我们也能看出:所有的3d旋转,对着正方向去看,都是顺时针旋转。

格式:

 transform: rotateX(360deg); //绕 X 轴旋转360度
 transform: rotateY(360deg); //绕 Y 轴旋转360度
 transform: rotateZ(360deg); //绕 Z 轴旋转360度

格式举例:

(1)rotateX 举例

效果:

上方代码中,我们最好加个透视的属性,方能看到3D的效果;没有这个属性的话,图片旋转的时候,像是压瘪了一样。

而且,透视的是要加给图片的父元素 div,方能生效。我们在后面会讲解透视属性。

(2)rotateY 举例:

效果:

(3)rotateZ 举例:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title></title>
 <style>
 .rotateZ {
 width: 330px;
 height: 227px;
 margin: 100px auto;
 /* 透视*/
 perspective: 200px;
 }
 img {
 transition: all 1s;
 }
 .rotateZ:hover img {
 transform: rotateZ(360deg);
 }
 </style>
</head>
<body>
<div class="rotateZ">
 <img src="images/z.jpg" alt=""/>
</div>
</body>
</html>

效果:

案例:百度钱包

现在有下面这张图片素材:

要求做成下面这种效果:

上面这张图片素材其实用的是精灵图。实现的代码如下:

2、移动:translateX、translateY、translateZ

格式:

 transform: translateX(100px); //沿着 X 轴移动
 transform: translateY(360px); //沿着 Y 轴移动
 transform: translateZ(360px); //沿着 Z 轴移动

格式举例:

(1)translateX 举例:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title></title>
 <style>
 .box {
 width: 200px;
 height: 200px;
 background: green;
 transition: all 1s;
 }
 .box:hover {
 transform: translateX(100px);
 }
 </style>
</head>
<body>
<div class="box">
</div>
</body>
</html>

效果:

(2)translateY 举例:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title></title>
 <style>
 .box {
 width: 200px;
 height: 200px;
 background: green;
 transition: all 1s;
 }
 .box:hover {
 transform: translateY(100px);
 }
 </style>
</head>
<body>
<div class="box">
</div>
</body>
</html>

效果:

(3)translateZ 举例:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title></title>
 <style>
 body {
 /* 给box的父元素加透视效果*/
 perspective: 1000px;
 }
 .box {
 width: 250px;
 height: 250px;
 background: green;
 transition: all 1s;
 margin: 200px auto
 }
 .box:hover {
 /* translateZ必须配合透视来使用*/
 transform: translateZ(400px);
 }
 </style>
</head>
<body>
<div class="box">
</div>
</body>
</html>

效果:

上方代码中,如果不加透视属性,是看不到translateZ的效果的。

3、透视:perspective

电脑显示屏是一个 2D 平面,图像之所以具有立体感(3D效果),其实只是一种视觉呈现,通过透视可以实现此目的。

透视可以将一个2D平面,在转换的过程当中,呈现3D效果。但仅仅只是视觉呈现出3d 效果,并不是正真的3d。

格式有两种写法:

  • 作为一个属性,设置给父元素,作用于所有3D转换的子元素
  • 作为 transform 属性的一个值,做用于元素自身。

4、3D呈现(transform-style)

3D元素构建是指某个图形是由多个元素构成的,可以给这些元素的父元素设置transform-style: preserve-3d来使其变成一个真正的3D图形。属性值可以如下:

 transform-style: preserve-3d; //让 子盒子 位于三维空间里
 transform-style: flat; //让子盒子位于此元素所在的平面内(子盒子被扁平化)

案例:立方体

动画

动画是CSS3中具有颠覆性的特征,可通过设置多个节点 来精确控制一个或一组动画,常用来实现复杂的动画效果。

1、定义动画的步骤

(1)通过@keyframes定义动画;

(2)将这段动画通过百分比,分割成多个节点;然后各节点中分别定义各属性;

(3)在指定元素里,通过 animation 属性调用动画。

之前,我们在 js 中定义一个函数的时候,是先定义,再调用:

 js 定义函数:
 function fun(){ 函数体 }
 调用:
 fun();

同样,我们在 CSS3 中定义动画的时候,也是先定义,再调用

 定义动画:
 @keyframes 动画名{
 from{ 初始状态 }
 to{ 结束状态 }
 }
 调用:
 animation: 动画名称 持续时间;

其中,animation属性的格式如下:

 animation: 定义的动画名称 持续时间 执行次数 是否反向 运动曲线 延迟执行。(infinite 表示无限次)
 animation: move1 1s alternate linear 3;
 animation: move2 4s;

定义动画的格式举例:

注意好好看代码中的注释。

效果如下:

2、动画属性

我们刚刚在调用动画时,animation属性的格式如下:

animation属性的格式如下:

 animation: 定义的动画名称 持续时间 执行次数 是否反向 运动曲线 延迟执行。(infinite 表示无限次)
 animation: move1 1s alternate linear 3;
 animation: move2 4s;

可以看出,这里的 animation 是综合属性,接下来,我们把这个综合属性拆分看看。

(1)动画名称:

 animation-name: move;

(2)执行一次动画的持续时间:

 animation-duration: 4s;

备注:上面两个属性,是必选项,且顺序固定。

(3)动画的执行次数:

 animation-iteration-count: 1; //iteration的含义表示迭代

属性值infinite表示无数次。

(3)动画的方向:

 animation-direction: alternate;

属性值:normal 正常,alternate 反向。

(4)动画延迟执行:

 animation-delay: 1s;

(5)设置动画结束时,盒子的状态:

 animation-fill-mode: forwards;

属性值: forwards:保持动画结束后的状态(默认), backwards:动画结束后回到最初的状态。

(6)运动曲线:

 animation-timing-function: ease-in;

属性值可以是:linear ease-in-out steps()等。

注意,如果把属性值写成steps(),则表示动画不是连续执行,而是间断地分成几步执行。我们接下来专门讲一下属性值 steps()。

steps()的效果

我们还是拿上面的例子来举例,如果在调用动画时,我们写成:

 animation: move2 4s steps(2);

效果如下:

有了属性值 steps(),我们就可以作出很多不连续地动画效果。比如时钟;再比如,通过多张静态的鱼,作出一张游动的鱼。

step()举例:时钟的简易模型

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title></title>
 <style>
 div {
 width: 3px;
 height: 200px;
 background-color: #000;
 margin: 100px auto;
 transform-origin: center bottom; /* 旋转的中心点是底部 */
 animation: myClock 60s steps(60) infinite;
 }
 @keyframes myClock {
 0% {
 transform: rotate(0deg);
 }
 100% {
 transform: rotate(360deg);
 }
 }
 </style>
</head>
<body>
<div></div>
</body>
</html>

上方代码,我们通过一个黑色的长条div,旋转360度,耗时60s,分成60步完成。即可实现。

效果如下:

动画举例:摆动的鱼

现在,我们要做下面这种效果,为了作出上面这种效果,要分成两步。

(1)第一步:让鱼在原地摆动

鱼在原地摆动并不是一张 gif动图,她其实是由很多张静态图间隔地播放,一秒钟播放完毕,就可以了

图片的url是http://img.smyhvae.com/20180209_1245.gif,图片较大,如无法观看,可在浏览器中单独打开。

上面这张大图的尺寸是:宽 509 px、高 2160 px。

我们可以理解成,每一帧的尺寸是:宽 509 px、高 270 px。270 * 8 = 2160。让上面这张大图,在一秒内从 0px 的位置往上移动2160px,分成8步来移动。就可以实现了。

代码是:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title></title>
 <style>
 .shark {
 width: 509px;
 height: 270px; /*盒子的宽高是一帧的宽高*/
 border: 1px solid #000;
 margin: 100px auto;
 background: url(images/shark.png) left top; /* 让图片一开始位于 0 px的位置 */
 animation: sharkRun 1s steps(8) infinite; /* 一秒之内,从顶部移动到底部,分八帧, */
 }
 @keyframes sharkRun {
 0% {
 }
 /* 270 * 8 = 2160 */
 100% {
 background-position: left -2160px; /* 动画结束时,让图片位于最底部 */
 }
 }
 </style>
</head>
<body>
<div class="sharkBox">
 <div class="shark"></div>
</div>
</div>
</body>
</html>

我们不妨把上面的动画的持续时间从1s改成 8s,就可以看到动画的慢镜头

这下,你应该恍然大悟了。

(2)第二步:让鱼所在的盒子向前移动。

实现的原理也很简单,我们在上一步中已经让shark这个盒子实现了原地摇摆,现在,让 shark 所在的父盒子 sharkBox向前移动,即可。完整版代码是:

最后效果很好

这是我在学习CSS3动画的时候收藏的一篇好文,现在分享在这里,既方便大家学习参考,也方便日后查阅,最后感谢作者

链接文章

https://www.cnblogs.com/qianguyihao/p/8435182.html

月27日,外交部发言人赵立坚主持例行记者会上,路透社记者问了个不出大家所料的问题:

据CNN报道,长征五号火箭末级将在8月1日左右再入大气层。中国政府是否掌握火箭末级残骸将于何时何地着陆?如果掌握,中方会否及时向有关国家通报碎片坠落路径的相关信息?

赵立坚:火箭末级再入大气层烧蚀销毁,这是国际通行做法,据了解,该型火箭采用特殊的技术设计,绝大部分器件将在再入过程中烧蚀销毁,对航空活动及地面造成危害的概率极低......

长征五号B火箭在哪里?究竟何时会坠毁?

7月26日,CNN报道了中国发射问天舱段的长征五号B火箭将会于8月1日坠落大气层,据正在追踪火箭轨迹的美国太空司令部称,和去年坠落的CZ-5 R/B一样,目前尚不清楚它将降落在哪里。

不列颠哥伦比亚大学教授迈克尔·拜尔斯表示:“这是一个重达20吨的金属物体,虽然它会在进入大气层时分解,但可能会有部分碎片到达地表”,他同时表示,太空碎片对人类的风险极小,但如果它落在有人居住的地区,更大的部分可能会造成损害。

分离了助推器的芯级

据发表在《自然天文学》杂志上的研究,由于太空垃圾的增加,坠落地面造成的附带损伤概率可能会增加,而在雅加达、达卡和拉各斯的概率会高于纽约、北京或莫斯科。

似乎听上去有些严重:长征五号B火箭又在哪里呢?

其实这个遗留在太空的火箭并不是长征五号的全部,而是它的一级火箭,因为这枚火箭是一个一级半型,除了四枚助推器以外还有中间的芯级火箭,剩下的就是火箭头部整流罩,载荷就在这个整流罩内。

长征五号B火箭点火发射后,助推器和芯级会同时点火,不过助推器会首先烧完脱离,但芯级会持续燃烧直至将载荷送入预定轨道,比如问天实验舱入轨的轨道参数为:170千米 x 320千米,轨道倾角41.5°,火箭的任务到这里就结束了,问天实验舱将启动自己的火箭去追赶天宫空间站。

能将载荷送到这个椭圆轨道上的,其实也已经入轨了,只是它的轨道比较低,轨道会在7~10天内衰减并重返大气层,因此长征五号的一级火箭,也就是CZ-5 R/B将会在此逗留一周左右的时间。

长征五号B火箭又在哪里呢?

从AeroSpace的官网(一个记录再入人工航天器的网站,近期以及过去数年内坠入地球的航天器都可以查到)可以查询到CZ 5 5/B将会在7月31日坠入地球,具体如下:

具体再入时间预计为:2022年7月31日00:24 UTC ± 16 小时,UTC时间+8为北京时间,因此它的再入时间确实可能会推迟到8月1日,不过这个本来误差就比较大,这也比较正常:

其中网状示意图为CZ-5 R/B的轨道,其范围为南北纬41.5°左右,也就是说在网状区域范围内,任何一个地方均有可能再入,关于上图轨迹的查看还有如下说明:

鸡饭版,各位凑合着看

天体物理学家乔纳森·麦克道威尔@planet4589则给出更详细的数据,当然也是AeroSpace提供的:

下面这张大图放大后如下:

左右对照着看,中间是核心级的示意图,上面是远地点,下面则是近地点,一般近地点在到达100千米高度时大气分子阻力会急剧增加,很快就会坠入大气层,根据近地点延长线,还真用不了多久了。

外媒持续炒作:其实美国火箭也是五十步笑百步

送入轨道的火箭再入是很常见的现象,原因很简单,火箭将卫星送入轨道后基本上都没有能力再次受控返回地球,一个是很多火箭不具备再入控制能力,另一个则是火箭燃料不够,因为在轨道上运行的人造天体,将其减速入轨同样需要燃料!

这就造成了比较大的麻烦,装载过多的燃料显然与任务不利,而且会增加成本,因此绝大部分火箭都是选择无控再入的,也就是说任其在大气层中烧毁,因为地球大部分都是海洋,即使是陆地,绝大部分都是无人区,概率极低,包括西方的各大航天或者宇航局,基本上不会为这个额外考虑。

NASA:成本过高不予控制

上文说明了火箭受控再入从理论上是可以的,因为有几种方法可以可控再入,比如增加固体小火箭减速,或者设计二次点火的机构,比如以火箭给予加速度,让燃料“再次沉淀”于罐底让涡轮机可以泵入燃烧室点燃。

另一种则是使用气囊结构,将燃料压入涡轮泵,然后再次点燃,但就像上文所说的,成本还是决定了一切,7月11日,《自然天文学》上就有一篇论文揭露了美国多枚火箭因为成本上的原因放弃了增加返回机构选择,即使在NASA评估后风险程度很高的情况下:

英文部分翻译如下:美国空军在2011年至2018年间为其进行的66次发射中的37次放弃了ODMSP(轨道碎片缓解标准操作)要求,理由是用合规火箭替换不合规火箭的成本实在太高。NASA 在2008年至2018年间七次放弃要求,包括2015年的Atlas V发射,当时估计伤亡风险高达1/600,这个概率可谓是极高了,但为了成本考虑,直接放弃了!

比如Delta IV火箭,由于其升级成本过高,美国政府豁免了其升级要求!这个操作是不是“非常双标”,宽于律己,严于律人,这就是美式双标狗。

显然SpaceX也没好多少,猎鹰9火箭具有再次点火的能力,但由于其燃料不足,在发射稍高轨道卫星时往往无法可控返回,比如在2016年,SpaceX的猎鹰火箭的第二级被遗弃在轨道上,一个月后在印尼上空再入大气层,两个冰箱大小的燃料罐没有被烧毁到达了地面。2021年4月份,SpaceX的猎鹰火箭的第二级在华盛顿州坠毁。

但外媒在报道时往往对这些轻描淡写一笔带过,比如最早跳出来的纽约时报,随后跟上的CNN,另外SpaceNews上也出现了类似的文章,随着CZ-5 R/B返回的临近,加入炒作的会越来越多。

他们忽略西方火箭的威胁,却对CZ-5 R/B的再入大肆炒作!外交部发言人赵立坚也说明了:CZ-5 R/B已经做过特殊设计,再入返回时会更容易分解,绝大部分器件将在再入过程中烧蚀销毁,对航空活动及地面造成危害的概率极低。

就像夏天的蛙鸣一样不影响我们建设天宫空间站,随他们叫去吧!(完)

参考:

https://m.gmw.cn/baijia/2022-07/28/1303064127.html

https://edition.cnn.com/2022/07/26/china/china-wentian-space-debris-intl-hnk-scn/index.html

品:科普中国

制作:一颗青椒

监制:中国科学院计算机网络信息中心

大家在新闻中常常可以看到这样的消息:"我国在某卫星发射中心用某型运载火箭,成功发射了……",这里的"某型运载火箭"绝大部分是我国的"长征"系列运载火箭,例如昨天在文昌航天发射场成功发射我国新型载人飞船的"长征五号B遥一"运载火箭。

图片来源:江程杰

不知你是否想过,为何我国的火箭以"长征"为名?这些火箭又是如何命名的?

"长征"与长征

"长征"——提起这两个字,很多人的脑海里肯定会想到这两件事情:一件是八十多年前红军那二万五千里的漫漫征途,再一件就是五十年来不断将我国的卫星和航天员送入太空的"长征"系列运载火箭。

在我国运载火箭设计之初,第一批航天人受毛主席《七律·长征》中表达出的红军为实现革命目标不畏艰辛、顽强奋斗的精神启发,提出了将我国运载火箭命名为"长征"的构想,并获得了上级的批准。自那时起,我国的运载火箭就被称作"长征"火箭了。

火箭型号中的数字、字母和关键字,都是什么意思?

从1970年到2020年,经历了半个世纪的探索与发展,我国"长征"系列运载火箭开枝散叶,发展出十几种不同型号。为了方便区分,我国将不同型号的基础型火箭命名为"长征x号",英文简称就是"长征"的拼音字头"CZ"。

而由这些基础型火箭改进构型而来的子型号则命名为"长征x号甲/乙/丙"等等,英文简称就是"CZ-x A/B/C"。

此外由于火箭在服役过程中得到一定改进但改进幅度比较小此时便直接在该型号火箭后面加一个"改"字,以表示其与之前型号的不同。

△火箭吊装 图片来源:http://www.spacechina.com/n25/n2014789/n2014804/c2841871/content.html

举个例子,长征三号系列火箭中有长征三号(CZ-3)、长征三号甲(CZ-3A)、长征三号乙(CZ-3B)和长征三号丙(CZ-3C)四个型号,后面三个型号都是在CZ-3的基础上通过改进三级和捆绑不同数量的助推器实现的,所以都归入了长征三号系列中。

而CZ-3B和CZ-3C这两个型号又进行过很多小改进,如加长助推器和一级、更新导航组件等;这一系列"小步快跑"式的改进,则是直接在此型号后面加"改"字表示,如"长征三号乙改一/改二"(CZ-3B G1/G2)等。

有时候在新闻中会看到"长征x号"名字的后面会出现"遥xx"这样的称呼,这里的"遥"实际上是"遥测箭"的简称。在火箭发射过程中,为了实时追踪飞行状态,需要在火箭上装设遥测设备,装有这些设备的火箭被称为"遥测箭"。"遥"字后面的数字可以理解为是本型火箭生产编号,例如"长征五号遥一(CZ-5 Y1)"就是第一枚长征五号火箭,"CZ-5 Y3"就是第三枚等等。

火箭型号的数字越大,火箭越先进/大/新吗?

我国早期的运载火箭发展主要是由卫星的发射需求决定的。

上世纪60年代,为了将我国第一颗人造卫星送入太空,在中远程弹道导弹的基础上研发了CZ-1火箭;随着近地轨道卫星变得更大更重,中远程导弹的底子就有些力不从心了,于是在洲际导弹基础上研发的CZ-2火箭应运而生。

图片来源:http://www.xinhuanet.com/video/2019-09/19/c_1210285806.htm

到了70年代中期,我国同步轨道通讯卫星计划启动,火箭的飞行目标从近地轨道提升至同步轨道。在CZ-2基础上加装三级的CZ-3和CZ-4应运而生,其中CZ-3采用了当时技术较为先进的液氢液氧燃料三级,同时,由于担心CZ-3的三级研制难度过大而拖慢进度,CZ-4则选取了难度相对较低的常温燃料三级,两种型号同步发展。

后来CZ-3和CZ-4的进度都颇为顺利,由于氢氧燃料第三级更适合发射同步轨道卫星,CZ-3逐渐发展成了我国发射同步轨道卫星的主力火箭。为了不浪费CZ-4的现有成果,同时为了发射太阳同步轨道气象卫星风云一号,CZ-4进一步改进成为发射气象卫星的CZ-4A型火箭。

上世纪九十年代,随着CZ-3B等一系列火箭的投入使用,中国完善了火箭体系,但同时也暴露出一些问题,包括燃料成本高昂且剧毒、直径偏小、型号偏多和型谱重叠等。为了解决这些问题,新一代长征五号运载火箭应运而生。2006年立项之初,长征五号计划以5m直径氢氧燃料芯级作为核心,通过灵活组合3.35m和2.25m两种直径的液氧煤油燃料助推器,来满足不同运力和不同轨道的发射需求。

例如,使用5m直径一级捆绑4个2.25m助推器的一级半构型,LEO运力为10吨;换成4个3.35m直径的大助推器,LEO运力就能达到25吨。

在这些一级半构型上添加氢氧二级,形成二级半构型,长征五号就能实现同步轨道发射任务,GTO运力分别为6吨与14吨。

而这些助推器模块独立出来,也能形成新型小、中型火箭的衍生型号,它们能够承担其他运力范围的发射任务。

△长征五号遥三运载火箭在中国文昌航天发射场点火升空 图片来源:http://m.xinhuanet.com/2019-12/27/c_1125397319.htm

此后,长征五号的方案经历过一些更改,到了2009年与2010年,原本作为长征五号系列中衍生型号的小、中型火箭,分别独立形成了长征六号与长征七号两个新系列,长征五号系列最初的6个方案中只保留了GTO与LEO运力最大的两个,就是现在的长征五号和长征五号乙型火箭。

长征五、六、七号将作为我国未来航天发射的主力军,"老长征"系列或许会逐渐完成它们的历史使命。

除了前述的液体燃料运载火箭之外,我国利用新型固体燃料弹道导弹技术改进的长征11号、快舟系列运载火箭以其快速响应、快速发射的优越特性,与同样可以快速发射的CZ-6在近年来的小卫星发射活动中占据了一席之地,可谓"固液两开花"。

如此来看,我国运载火箭并不是数字越大,火箭越大、越先进,而是根据型号立项时间的早晚和实际需求的变化综合决定的

我国运载火箭发展历程 图片来源:火箭照片来自百度百科、中国运载火箭技术研究院,作者有加工。

从长征一号到长征十一号,中国航天事业历经了50年的艰难长征,取得了一系列辉煌的成就。"实践"、"风云"、"神舟"、"北斗"、"嫦娥"、"天宫"、"天舟"、"悟空"、"墨子"……这些熟悉的名字经由"长征"系列运载火箭的托举,进入了广阔的太空之中。可以说,一代代"长征"火箭,是一代代中国人艰苦奋斗、自力更生的回忆。

未来,我们将建设自己的空间站,取回来自月球的第一抔土,我们将向火星投送着陆器,我们还将飞出小行星带,甚至还将要前往更加浩渺的星际空间中。我们还可能将在未来载人登月,新时代的"嫦娥"将踏足广寒。

而始终不变的,是"长征"火箭的呼号,是我们长征太空的梦想!

"待来日,去星辰大海,九天翱翔!"


文章仅代表作者观点,不代表中国科普博览立场