本文所有分析仅代表个人观点,不代表官方,仅供参考
制作人:川川徒弟 demoo
CSDN:川川菜鸟
公众号:川川带你学AI
全文采用非编程做法
需要工具: geogebra、matlab工具箱
注: 本文全文不考虑测线不平行的复杂情况
问题一
该题在解析中要求重新给出覆盖宽度、覆盖率的定义,但实际上我们可以直接沿用原定义,只不过覆盖率在计算时的参照对象改为自己,修正后的定义如下:
η i + 1 = 1 − d w i \eta_{i+1}=1-\frac{d}{w_i} ηi+1=1−wid
接着操作就十分简单了,坡面方程已知,射线所过定点已知,射线斜率已知,那射线与坡面的交点坐标自然也已知,其他的相关量也可一并得出,接着直接用geogebra进行绘图测量即可:
如上图所示,可以通过这种稍繁琐的方法求出所有的相关量,完善表格。
问题二
要点所给的方法已经是相当简单的了,当测线不再平行于坡面时,坡面相对于测线的角度也会发生变化,具体的转换公式如下:
tan γ = x tan 1. 5 ∘ x 1 + tan 2 β = tan 1. 5 ∘ 1 + tan 2 β \tan \gamma=\frac{x \tan 1.5^{\circ}}{x \sqrt{1+\tan ^2 \beta}}=\frac{\tan 1.5^{\circ}}{\sqrt{1+\tan ^2 \beta}} tanγ=x1+tan2βxtan1.5∘=1+tan2βtan1.5∘
推导过程较为繁琐这里就不多赘述了,笔者采用的是建系,从解析几何的角度进行考量,虽然结果上问题不大但是过程较为繁琐并且和要点偏离较远,这里就不多阐述了,紧接着重复第一问步骤即可。
问题三
要点只阐述了结果,这里分两步进行细致阐述:
Part 1.理论证明
先证明为什么在测线平行时,沿着等深线方向布线是最优的布线方案:
Step1.布线原则(行为逻辑):
由第二问可知当β为0时,条带形状为一矩形或者一梯形,浅水区带宽较小为上底,深水区带宽较长为下底,布线行为遵循一个原则,从最浅处,最距离直线的最远处开始布线,第一条线所形成条带刚好能覆盖边界线或顶点,所有的线均遵从在满足覆盖率满足要求的前提下尽可能的小,这样可以保证条带的面积得到充分的利用,所需的条数尽可能的少。
Step2.沿着等深线布线所需要的条数是最少的:
证明这一点时上面的图能发挥作用了,依题意所有区域都要被条带覆盖,为了方便分析,不妨取一条东西走向的边界线进行分析,再观察上图,右侧的黑色线代表条带的宽度,可以发现在同一点,不同角度所形成的条带所成的图形为一椭圆,可以发现当β为90°时其为长轴,带宽长度最长,所需的条数最小。
Step3.等深线布线的总测线长度是最小的:
上面我们证明了沿等深线布线所需条数是最小的,但仅凭条数并不足以说明这样排布的总条数最小,我们暂且不考虑重复率超过限制导致的方案作废,当β角不为0时,若不考虑截断,总长度是增加的,考虑截断,可以发现左下角被截断部分分布较疏,而右上角新增部分分布较密,权衡之后,总长度还是增加了,所以再β为0时,沿着等深线布线是最优方案。
Part 2.实际操作
接下来的工作就十分简单的,可以在第二问的基础上从最浅处开始布线,始终保持10%的最低覆盖率往下布线。
问题四
依照要点,应当分块拟合,再按照第三问做法开始布线即可,
那本问唯一的难点就是分块拟合了,利用matlab的CFtool工具箱即可轻松解决。
- 手动将曲面分割为任意块
- 分批次导入x,y和z
- 采用多项式进行一次(平面)拟合
上图为四分之一曲面的拟合结果,可以发现拟合效果仍有欠缺,仅为0.74,采用二次可以将拟合R^2提高至0.96但是计算难度会大很多,就先按答案来吧。
上图平面已拟合完毕,直接按照第三问去做即可。