整合营销服务商

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

免费咨询热线:

2022年计算机网络编程热门面试题总结(附标准答案)

2022年计算机网络编程热门面试题总结(附标准答案)

如今计算机网络基本可以说是中、大厂面试必问的内容
但是现在好多文章的答案并不够全面深刻,有的则过于详细,不利于面试
以下是借鉴资料和他人文章,总结常见计算机网络面试题,希望为大家带来帮助

1、计算机网络分层体系结构(五层举例)

应用层:为应用程序提供交互服务。在互联网中的应用层协议很多,如域名系统DNS、HTTP协议、SMTP协议等。

传输层:负责向两台主机进程之间的通信提供数据传输服务。传输层的协议主要有传输控制协议TCP和用户数据协议UDP。

网络层:选择合适的路由和交换结点,确保数据及时传送。主要包括IP协议。

数据链路层:在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。

物理层:实现相邻节点间比特流的透明传输,尽可能屏蔽传输介质和物理设备的差异。

2、三次握手

3、四次挥手

4、为什么不是两次握手

5、四次挥手中为什么等待2MSL

6、HTTP和HTTPS区别

  • http 协议是免费使用的,而 https 协议需要到CA机构申请证书,需要缴纳费用
  • http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl/tls 加密传输协议,信息是密文
  • http 的连接很简单,是无状态的;https 协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全
  • 和 http 通信相比,https 通信会由于加减密处理消耗更多的CPU和内存资源
  • http 和 https 使用的端口也不一样,前者是80,后者是443

7、对称加密与非对称加密

对称加密:

对称加密是指加密和解密使用同一个密钥的方式,一方通过密钥将信息加密后,把密文传给另一方,另一方通过这个相同的密钥将密文解密,转换成可以理解的明文。

非对称加密:

使用一对非对称密钥加密,即公钥和私钥,公钥可以随意发布,任何人都能获得,但私钥只有自己知道

发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以叫作非对称加密

8、什么是数字证书

9、HTTPS工作流程

HTTPS 协议是安全的,因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但是 HTTPS 在内容传输使用的是对称加密,在证书验证阶段使用非对称加密

所以HTTPS加密方式是:对称加密 + 非对称加密混合

① 证书验证阶段:

1)浏览器发起 HTTPS 请求;

2)服务端返回 HTTPS 证书;

3)客户端验证证书是否合法,如果不合法则提示告警。

② 数据传输阶段:

1)当证书验证合法后,在本地生成随机数;

2)通过公钥加密随机数,并把加密后的随机数传输到服务端;

3)服务端通过私钥对随机数进行解密;

4)服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输。

10、HTTP常见状态码

  • 200 OK:表示从客户端发送给服务器的请求被正常处理并返回成功
  • 301 Moved Permanently:永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL;
  • 302 Found:临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL;
  • 400 Bad Request:表示请求报文存在语法错误;
  • 403 Forbidden:服务器拒绝该次访问(访问权限问题)
  • 404 Not Found:表示服务器上无法找到请求的资源(也可以在服务器拒绝请求但不想给拒绝原因时使用)
  • 500 Inter Server Error:表示服务器在执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的错误时;
  • 503 Server Unavailable:表示服务器暂时处于超负载或正在进行停机维护,无法处理请求;

相关视频推荐

《tcp/ip详解卷一》: 150行代码拉开协议栈实现的篇章

为什么不推荐做mcu与qt开发,c++ linux后台服务器开发很香吗?

学习地址:C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂

需要C/C++ Linux服务器架构师学习资料加群812855908获取(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享

11、HTTP长连接和短连接,流水线是什么

长连接和短连接:

HTTP1.0默认使用的是短连接。浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。

HTTP/1.1起默认使用长连接。要使用长连接,客户端和服务器的HTTP响应头部的Connection要设置为keep-alive,才能支持长连接。

HTTP长连接,指的是复用TCP连接。多个HTTP请求可以复用同一个TCP连接,这就节省了TCP连接建立和断开的消耗。

流水线:

默认情况下,HTTP 请求是按顺序发的,下一个请求只有在当前请求收到响应之后才会被发出,有点像停止等待协议。而在收到下一个请求之前,可能需要很长时间。流水线就是在一个 HTTP 长连接下连续发出请求,不用等待响应返回,减少延迟。

12、GET和POST区别和应用

GET产生的URL地址可以在书签收藏,而POST不可以。

GET请求会被浏览器主动缓存,而POST不会,除非手动设置。

GET请求只能进行url编码,而POST支持多种编码方式。

GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

GET请求在URL中传送的参数是有长度限制的(通常URL不大于2048个字符),而POST没有。

对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

GET参数通过URL拼接传递,POST参数通过请求体传递

GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把请求头和请求体一并发送出去;而对于POST,浏览器先发送请求头,服务器响应100 continue,浏览器再发送请求体。

13、TCP和UDP区别和应用

TCP是可靠传输,UDP是不可靠传输;

TCP面向连接,UDP无连接,即发送数据之前不需要建立连接

TCP传输数据有序,UDP不保证数据的有序性;

TCP面向字节流,把数据看成一连串字节流,UDP是面向报文的

TCP传输速度相对UDP较慢;

TCP有流量控制和拥塞控制,UDP没有;

TCP是重量级协议,UDP是轻量级协议;

TCP首部20字节,UDP首部8字节;

TCP连接只能是一对一的(端到端);UDP支持一对一、一对多、多对一和多对多的通信方式。

14、浏览器输入URL到页面返回详细过程

输入网址 输入要访问的网址,即URL

缓存解析 浏览器获取URL后,先去缓存中查找资源,从浏览器缓存-系统缓存-路由器缓存中查看; 如果有就从缓存中显示界面,不再发送请求; 如果没有,则发送http请求;

域名解析 发现缓存中没有资源,发送http请求; 在发送http请求之前,需要进行DNS解析(域名解析); DNS解析:域名到IP地址的转换过程,域名的解析工作由DNS服务器完成,解析后可以获取域名相应的IP地址;

tcp连接 三次握手在域名解析后,浏览器向服务器发起了http请求,tcp连接; 因为tcp协议时面向连接的,所以在传输数据前必须建立连接,即三次握手;tcp连接建立后,浏览器开始向服务器发送http请求报文

收到请求 服务器收到浏览器发送的请求信息,返回响应

页面渲染 浏览器收到服务器发送的响应,显示页面内容。

15、什么是Cookie和Session,二者区别

区别:

16、什么是ARP协议

17、什么是XSS攻击

XSS攻击原理是攻击者向有XSS漏洞的网站中输入恶意的 HTML 代码,当用户浏览该网站时,这段 HTML 代码会自动执行,从而达到攻击的目的。

例如:<script>alert("close me!")</script>

XSS 攻击类似于 SQL 注入攻击,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制,获取用户的一些信息。

18、DNS解析过程

浏览器搜索自己浏览器的DNS缓存

若没有,则搜索本地操作系统中的DNS缓存和hosts文件

若没有,则操作系统将域名发送至本地域名服务器,本地域名服务器查询自己的DNS缓存,查找成功则返回结果,否则依次向根域名服务器、顶级域名服务器、权限域名服务器发起查询请求,最终返回IP地址给本地域名服务器

本地域名服务器将得到的IP地址返回给操作系统,同时自己也将IP地址缓存起来

操作系统将 IP 地址返回给浏览器,同时自己也将IP地址缓存起来

浏览器得到域名对应的IP地址

19、谈谈IP地址和MAC地址

20、TCP流量控制(滑动窗口机制)

21、TCP拥塞控制

拥塞控制和流量控制不同,前者是一个全局性的过程,而后者指点对点通信量的控制。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫拥塞。

拥塞控制就是为了防止过多的数据注入到网络中,这样就可以使网络中的路由器或链路不致于过载。拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机,所有的路由器,以及与降低网络传输性能有关的所有因素。相反,流量控制往往是点对点通信量的控制,是个端到端的问题。流量控制所要做到的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

为了进行拥塞控制,TCP 发送方要维持一个拥塞窗口(cwnd)的状态变量。拥塞控制窗口的大小取决于网络的拥塞程度,并且动态变化。发送方让自己的发送窗口取为拥塞窗口和接收方的接受窗口中较小的一个。 TCP的拥塞控制采用了四种算法,即:慢开始、拥塞避免、快重传和快恢复。在网络层也可以使路由器采用适当的分组丢弃策略(如:主动队列管理AQM),以减少网络拥塞的发生。

慢开始:

慢开始算法的思路是当主机开始发送数据时,如果立即把大量数据字节注入到网络,那么可能会引起网络阻塞,因为现在还不知道网络的符合情况。经验表明,较好的方法是先探测一下,即由小到大逐渐增大发送窗口,也就是由小到大逐渐增大拥塞窗口数值。cwnd初始值为 1,每经过一个传播轮次,cwnd 加倍。

拥塞避免: 拥塞避免算法的思路是让拥塞窗口 cwnd 缓慢增大,即每经过一个往返时间 RTT 就把发送方的 cwnd 加 1。

快重传与快恢复: 在 TCP/IP 中,快速重传和快恢复(FRR)是一种拥塞控制算法,它能快速恢复丢失的数据包。

没有 FRR,如果数据包丢失了,TCP 将会使用定时器来要求传输暂停。在暂停的这段时间内,没有新的或复制的数据包被发送。有了FRR,如果接收机接收到一个不按顺序的数据段,它会立即给发送机发送一个重复确认。如果发送机接收到三个重复确认,它会假定确认件指出的数据段丢失了,并立即重传这些丢失的数据段。有了FRR,就不会因为重传时要求的暂停被耽误。当有单独的数据包丢失时,快速重传和快恢复(FRR)能最有效地工作。当有多个数据信息包在某一段很短的时间内丢失时,它则不能很有效地工作。

22、TCP 如何保证可靠传输

数据包校验:目的是检测数据在传输过程中的任何变化,若校验出包有错,则丢弃报文段并且不给出响应,这时 TCP 发送数据端超时后会重发数据;

对失序数据包重排序:既然 TCP 报文段作为 IP 数据报来传输,而 IP 数据报的到达可能会失序,因此 TCP 报文段的到达也可能会失序。TCP 将对失序数据进行重新排序,然后才交给应用层;

丢弃重复数据:对于重复数据,能够丢弃重复数据;

应答机制:当 TCP 收到发自 TCP 连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒;

超时重发:当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段;

流量控制:TCP 连接的每一方都有固定大小的缓冲空间。TCP 的接收端只允许另一端发送接收端缓冲区所能接纳的数据,这可以防止较快主机致使较慢主机的缓冲区溢出,这就是流量控制。TCP 使用的流量控制协议是可变大小的滑动窗口协议。

23、HTTP请求转发和重定向的区别

24、什么是DHCP协议

DHCP(动态主机配置协议) 是一个局域网的网络协议。

指的是由服务器控制一段IP地址范围,给用户提供了即插即用的联网方式,用户不需要再手动配置 IP 地址等信息

该协议自动为用户分配TCP/IP参数信息,如:IP地址,子网掩码,网关等信息。

25、什么是SQL注入

SQL注入就是将原本的SQL语句的逻辑结构改变,使得SQL语句的执行结果和原本开发者的意图不一样;

比如说我们通过账号密码进行登录,首先需要进行查询判断:

"select * from t_user where name="张三" and password="123456"

如果我们把or 1=1作为拼接在密码末尾传入进来,执行查询的时候sql会变成

"select * from t_user where name="张三" and password="123456" or 1=1

密码永远都是成立的,所以,前面无论密码正确与否都会成功登录

我们使用预编译语句就可以避免这个问题,例如:JDBC中的PrepareStatement或MyBatis中#{}

将sql预编译,传参数的时候,不会改变sql语句结构,就可以避免注入。

26、URL和URI区别

URL,统一资源定位符,URL 其实就是我们平时上网时输入的网址,它标识一个互联网资源,并指定对其进行操作或获取该资源的方法。例如 https://leetcode-cn.com/problemset/all/ 这个 URL,标识一个特定资源并表示该资源的某种形式是可以通过 HTTP 协议从相应位置获得。

URI,统一资源标识符,URL 是 URI 的一个子集,两者都定义了资源是什么,而 URL 还定义了如何能访问到该资源。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。简单地说,只要能唯一标识资源的就是 URI,在 URI 的基础上给出其资源的访问方式的就是 URL。

通俗理解:

  • URI表示的是一个抽象的地址,URL表示的是一个详细的地址。
  • 抽象的地址:辽宁省大连市(这是一个抽象的地址,相当于URI)
  • 详细的地址:辽宁省大连市高新园区软件园B2(这是一个详细的地址,相当于URL)
  • 为什么URL是URI的子集,高新园区软件园B2(URL)属于辽宁省大连市(URI)
  • 那么https://www.csdn.net 是一个URI(URI只指明了服务器的地址,没有具体到文件是什么类型)
  • 那么https://www.csdn.net/image/logo.gif就是一个URL(他具体到了logo文件的位置并且logo文件是gif类型的)

27、粘包与拆包

产生原因:

  • 要发送的数据小于TCP发送缓冲区的大小,TCP将多次写入缓冲区的数据一次发送出去,将会发生粘包;
  • 接收数据端的应用层没有及时读取接收缓冲区中的数据,将发生粘包;
  • 要发送的数据大于TCP发送缓冲区剩余空间大小,将会发生拆包;
  • 待发送数据大于MSS(最大报文长度),TCP在传输前将进行拆包。即TCP报文长度-TCP头部长度>MSS。

解决策略:

  • 消息定长。发送端将每个数据包封装为固定长度(不够的可以通过补0填充),这样接收端每次接收缓冲区中读取固定长度的数据就自然而然的把每个数据包拆分开来。
  • 设置消息边界。服务端从网络流中按消息边界分离出消息内容。在包尾增加回车换行符进行分割,例如FTP协议。
  • 将消息分为消息头和消息体,消息头中包含表示消息总长度(或者消息体长度)的字段。
  • 更复杂的应用层协议。

28、什么是阻塞和非阻塞,同步和异步

阻塞和非阻塞:调用者在事件没有发生的时候,一直等待事件发生,不能处理其他任务是阻塞。调用者在事件没有发生的时候,可以去处理别的事务这是非阻塞。

同步和异步:调用者循环查看事件有没有发生,这种情况是同步。调用者不用自己去查看事件有没有发生,而是等待注册在时间上的回调函数自己通知自己,这是异步。

29、HTTP版本区别(1.0,1.1,2.0)

HTTP1.0:

HTTP1.0仅提供了最基本的认证,用户名和密码都未加密(明文)

HTTP1.0仅支持短连接,每次发送数据都会经过TCP三次握手和四次挥手,效率低

HTTP1.0只使用了header的if=modified-Since和Expires作为缓存失效的标准

HTTP1.0不支持端点续传,每次发送数据都会发送全部数据

HTTP1.0认为每台计算机都只能绑定一个IP地址,不支持虚拟网络

HTTP1.1:

HTTP1.1使用了摘要算法进行身份验证

HTTP1.1默认使用长连接:只需要建立一次连接,可以传输多次数据,传输完成之后,只需要一次切断即可。通过请求头的 Connection: keep-alive设置

HTTP1.1支持端点续传:通过请求头的Range实现

HTTP1.1使用了虚拟网络:在一台物理服务器上可以存在多个虚拟主机,共享一个IP地址

HTTP2.0:

HTTP2.0支持头部压缩:利用HPACK算法进行压缩,由于HTTP1.1头部经常出现Cookie、Accept、Sever、Range等字段可能会占用几百到几千字节,而body有时只有几十字节(“头重身轻”)

HTTP2.0使用二进制格式:HTTP2.0选择了更靠近TCP/IP的二进制格式,抛弃了ASCII码,提高了解析效率

HTTP2.0强化安全:HTTP2.0一般都跑在HTTPS上

HTTP2.0多路复用:一个连接上可以有多个请求

30、IP地址的分类

圆模型1:定点定长模型(圆的定义)。

这是定点定长模型,定点定长模型顾名思义,定点,也就是有个定点,还有个定长,一个是定点,一个是定长。

来看一下什么叫定点定长?这个点也是定点,AB是定长,AC是定长,OP为圆,BC为动点,并且且AB等于于AC,AC等于于AP,BC、P四点三点共圆,其中定点是A,半径是定长。

此时要发现这个是演员模型,要发现它是演员模型,也就是要把圆找出来,也就是以A为圆心,以B为半径做一个圆。这种以圆模型只要把圆形当它现了圆形,自然而然题目就做完了。

知识点就是这么简单,它的来源,引源的第一个叫做源的定义,引源模型的第一个的原理叫做源的定义,通常在翻折里面会出现。

一起来看一下在边长为二的菱形中,首先一起来看一下这个是边长为二的菱形,点M是终点,也就是MD是一,点N是上面的一个动点,点N是一个动点,一起来看一下,点N是一个动点,它是在运动。

接下来沿着mn翻折上去,得到了APM连接APC,要求APC的最小,这道题目就是典型的定点定长模型。

什么叫定点定长模型?首先一起来看一下,点M是定点,点M、AP、S硬长都等于几?一,看MD、AM、A、M、A、P,说明D、A、P是共圆的,以M为圆形,以一为半径。

找到了演员,找到了演员就很简单,把这个让这个圆形像打妖怪一样,把这个圆形让它现一下原形,现完原形以后发现M、A、P始终是在这个圆上运动,在圆上运动要打妖怪就得打它的心脏。

也就是在圆中球最值得问题的时候通常都是一箭穿心,什么叫一箭穿心?就是圆心跟点心连接起来,此时一箭穿心,什么时候当点A、P到这个的时候就是最小值,也就是要求M、C只要一箭穿心,此时M、点、A片运动到这个的时候取得最小值。

此时刘老师又教大家一个秘籍,其他老师是不肯教你们的,因为教会了你,教。会了徒弟饿死了师傅。刘老师这里教大家一个秘籍,在初中几何这个阶段,初中几何一般都是直角三角形,也就是说初中几何一半都是考直角三角形,也就是说要求mc的长度就要构造一个直角三角形。

但包括这个就很简单,余弦定理,因为这个是一百二十度一二二,直接求助,直接写出mc,用余弦定理直接写,但是因为初中阶段没有起,没有交,没有交都是用构造直角三角形的方法。

接下来构造一个直角三角形,过点m片做cd的颜色延长线的垂线,做完垂线以后知道这边是六十度,这个是六十度,这个是二分之一,这个就是二分之根号三,mc就可以求出来就是二分之五的平方,二分之根号三的平方就四分之三,开根号就是mc。

来看一下这个等于四分之二十五加上四分三,四分之二十八开根号,就二分之二根号七,十七二十八,就等于根号七,mc等于根号七,还要减去个一,所以是根号七一。刘老师就这么轻松的给大家秒杀了这道题目。

正常情况下园中的这种球最大值最小值正常就三步骤。

·第一步,把妖怪让它现原形。

·第二步,要把妖怪给打死,就一箭穿心,打它心脏。

·第三步,后招是叫三角形。

今天如果涉及到对折的问题,刘老师都是用这三步干掉元中最难的问题,一起来看一下,来试一试是不是三步干掉元中最难的位置。

来看一下辨识训练,在如图直角三角形a、b、c,中角c是九十度,ac是六,bc是八,这个是点f是在a、c上,并且cf是二点一,是bc上的一个动点,这个是个动点,一起来看一看,这个是一个动点,对不对?这个是一个运动的点。

继续看,将点c、e、f沿着e、f给它翻折,点c落在点p、p、n,点点p、n到ad的距离,此时也是一样,知道fp不管怎么运动始终等于,所以先找出这种也是典型的定点定长模型,在经常在压轴题里面最后一问或者倒数第二问出现,只是考到了你不知道而已。

此时来看一下,不妨把点p的北极画出来,也就是按第一步现原形,发现这个是以f为圆心,以二为半径的一个圆上,一起来看一看,是不是在这上面运动,在这个上面运动,正常一看这种题目在运动到什么时候最短,也就是一箭穿心,过圆心做ab的垂线,垂线段最短,此时,来看一下线段最短。第一步,线原形。第二步,一箭穿心。第三步,构造直角三角形。因为要求出fd,然后再减去半径最小值对不对?但是这里有没有现成的直角三角形?有,所以第三步构造直角三角形就省了。

此时一起来看一下可以口算出答案,因为这条斜边是等于四,四比上几?四比上这条斜边,这个大的三角形是什么?等于fd,fd比三十八,此时求出fd是等于三点二,三点二这边是二,这也就说最小值就是一点二,这都可以口算。

接下来来看第二道听,第三道听还是一样,但是是动态的将军音。

.4.3 到一条定直线的距离等于定长的点的轨迹演示

操作步骤如下:

第1步:新建一个几何画板文件;用“画直线”工具画直线AB;用“画点”工具在直线AB上任意画一点C。

第2步:在直线AB上制作点的动画。

用“选择”工具选择点C,并选择“编辑”菜单的“操作类按扭”命令,在子菜单中选择“动画”,打开“操作类按扭运动点的属性”对话框,把速度设置为“快速”,单击“确定”,作出“运动点”按扭。

第3步:制作一个跟随点C运动的点,且在运动过程中保持与直线AB等距离

(1) 用“画点”工具在直线AB外任意画一点D。用“选择”工具在空白处单击。

(2) 依次选择点A、C,并选择“变换”菜单的“标记向量”命令。

(3) 用“选择”工具选择点D,并选择“变换”菜单的“平移”命令,单击“平移”,作出点D'。

第4步:作点D'关于直线AB对称的点。

(1) 选择直线AB,并选择“变换”菜单的“标记镜面”命令。

(2) 选择点D',并选择“变换”菜单的“反射”命令,作出点D'关于直线AB对称点D''。

(3) 用“画线段”工具画线段D'D'',用“选择”工具单击线段D'D''与直线AB的交点处,作出交点为E。

第5步:用“选择”工具选择点D'、D'',并选择“显示”菜单的“追踪点”命令。

第6步:完善课件。

(1) 选择点D'、E,并选择“度量”菜单的“距离”命令,度量出点D'、E的距离,如D'E=0.9厘米。

同理,度量出D''E=0.9厘米。

(2) 把点D''设置为绿色。

(3) 把“运动点”按扭的标签改为“演示”。

单击“运动点”按扭,点D'、D''分别画出平行于直线AB并且与直线AB的距离相等的两条直线,如图3-79所示。

按下Ctrl+B擦除轨迹,拖动点D',改变距离,再单击“演示”按扭,试试。

(4) 添加标题“到一条定直线的距离等于定长的点的集合”。隐藏点C、D、E。

文件存盘为“例3-23”。

练习

制作到两条平行线距离相等的点的轨迹演示课件。

3.4.4 探索点的轨迹

设在一个平面内,点C是一个定点,点D是定圆O上的一个动点,作线段CD的垂直平分线与直线OD的交点P,求点D绕圆O转动时,点P的轨迹。

操作步骤如下:

第1步:画出满足条件的图形。

(1) 新建一个几何画板文件,并用“画圆”工具画圆A。

(2) 用“选择”工具双击点A的标签,打开“点的属性”对话框,把点A的标签改为O,并隐藏点B。

(3) 用“画点”工具在圆A内画一点C,在圆上画一点D。

(4) 用“画直线”工具画直线OD。

(5) 用“画线段”工具画线段CD,此时,CD处于被选择状态,立即选择“构造”菜单的“中点”命令,作出中点E。

(6) 用“选择”工具选择点E、线段CD,并选择“构造”菜单的“垂线”命令,作出CD的垂直平分线,单击该垂直平分线与直线OD的交点处,作出交点F。把点F的标签改为P。

第2步:选择点P,并选择“显示”菜单的“追踪交点”命令。

第3步:为点D制作动画按扭。

选择点D、并选择“编辑”菜单的“操作类按扭”命令,在子菜单中选择“动画”,打开“操作类按扭运动点的属性”对话框,把运动方向设置为“逆时针方向”;选择“标签”选项卡,把按扭的标签改为“点P的轨迹”,单击“确定”。

第4步:探求点P的轨迹。

(1) 单击“点P的轨迹”按扭,点P随着点D运动而产生的轨迹为椭圆,如图3-80所示。

(2) 按下Ctrl+B擦除轨迹;用“选择”工具拖动点C,使点C与点O重合,则点P的轨迹为圆,如图3-81所示。

(3) 按下Ctrl+B擦除轨迹;拖动点C,使点C落到圆O上,则点P的轨迹为点圆,如图3-82所示。

(4) 按下Ctrl+B擦除轨迹;拖动点C到圆外,点P的轨迹为双曲线,如图3-83所示。

文件存盘为“例3-24”

【提示】

(1) 本例第4步(2),如果不好作拖动操作,可以制作一个点C向点O移动的按扭,并把移动速度设置为高速。

(2) 本例中,如果在半径OD上任意画一点,我们还可以探求该点的轨迹。

(3) 读者可以对点P的轨迹作出证明。

练习

在一个平面内,点C是一个定点,点D是定圆O上的一个动点,过线段CD的中点作直线OD的垂线,垂足为P,求点D绕圆O转动时,点P的轨迹。

3.4.5 滚动的多边形轨迹演示

第1 步:制作参数,并制作参数的增加/减少按扭。

(1) 新建一个几何画板文件,用“画射线”工具画射线AB,用“画点”工具在射线AB上画一点C。用“选择”工具在空白处单击。

(2) 依次选择点A、B,并选择“变换”菜单的“标记向量”命令。

(3) 选择点C,并选择“变换”菜单的“平移”命令,作出点C'。

(4) 依次选择点A、B、C,并选择“度量”菜单的“比”命令,度量出比值,如

(4) 选择点D、E、N-2=2,按下Shift键,并选择“变换”菜单的“带参数的迭代”命令,打开“迭代”对话框,依次单击点E'、D,如图3-85所示,单击“迭代”作出正方形。

单击“N+”按扭,多边形的边随着N值的变化而变化。

(5) 隐藏射线AB、点A、B、C、C'、E'、t=4。

第3步:作正多边形的中心。

(1) 选择线段DE,并选择”构造“菜单的”中点“命令,作出中点F。

(2) 选择点F、线段DE,并选择选择”构造“菜单的”垂线“命令,作出垂线j。用“选择”工具在空白处单击。

(3) 选择点E,并选择“变换”菜单的“旋转”命令,打开“旋转”对话框,单击

第5步:完善课件。

(1) 选择点H,并选择“编辑”菜单的“操作类按钮”命令,在子菜单中选择“动画”,打开“操作类按钮运动点的属性”对话框,把速度设置为“快速”,单击“确定”,作出“运动点”按钮。

(2) 依次选择“移动点”、“运动点”按钮,并选择“编辑”菜单的“操作类按钮”命令,在子菜单中选择“系列”,打开“操作类按钮系列的属性”对话框,选中“依序执行”、“清除所有轨迹”,把按扭的标签改为“演示”。

(3) 把N值的精确度设置为“单位”。

(4) 选择点K、X',并选择显示菜单的“追踪”命令。把点K设置为绿色。隐藏不需要显示的对象。

单击“演示”,作出正方形中心和顶点的轨迹,如图3-88所示。

单击“N+”,再单击“演示”按扭,可以看到边数增加后的正多边形转动的情况。

(5) 添加标题“滚动的多边形”,把背景设置为灰色。

文件存盘为“例3-25”

【提示】

(1) 由点通过变换得到的点(如平移、旋转、缩放得到的点)不能作为迭代的基础点,因此有第4 步(14)~ (18)的操作。

(2) 用“带参数的迭代”命令作出的图形上的迭代次数随参数变化而变化。

(3) 在“新建计算”的“单位”下拉列表中,可以选择数量的单位,如图3-89所示;在“数值”下拉列表中,有数学常数π和e,如图3-90所示,还可以建立可变的参数,本例第1步中制作的参数也可以从这里建立,请参看本章3.6.1;在“函数”下拉列表中有常用的13个函数,如图3-91所示,其意义见表3-3。