## 重新思考浮点数比较 通常的建议是*不要*直接比较浮点数是否相等,而*总是*使用基于epsilon的比较,但这常常是误导性的。虽然浮点数由于有限的表示形式而本质上是不精确的,但它们并非随机的;运算是确定性的且标准化,保证结果尽可能接近真实值。 作者认为,epsilon比较常常是一种“权宜之计”,导致调试噩梦,并且常常无法解决根本问题。相反,更好的解决方案通常存在——通常涉及代码重构或直接相等性检查。 几个案例研究对此进行了说明:基于网格的移动、球面插值、向量长度计算、求解线性系统、光线-盒子相交,甚至清理用户输入。这些例子表明,通过理解潜在的数学原理、利用浮点数的保证或重新思考问题的方法,可以避免看似必要的epsilon。 Epsilon在特定情况下*可能*是合适的,例如测试用例验证或过滤噪声用户输入,但需要仔细考虑。最终,关键在于深思熟虑的问题解决,而不是盲目地遵守经验法则。不要仅仅使用epsilon;理解你*为什么*进行比较,以及是否存在更稳健的解决方案。
## 美国“胜利”的质疑
本文认为,传统意义上“胜利”国家的定义——GDP增长和企业利润增加——是以牺牲美国工人及其社会福祉为代价的。作者认为,外包,源于规避劳资谈判的愿望,已经侵蚀了美国的制造业基础,并使公民失去了更多机会。
关税*可能*会激励企业回流并重建国内劳动力,但这将意味着放弃全球经济领导地位。作者进一步批评了美国的人工智能技术出口管制(如英伟达芯片),认为这是自毁行为,积极鼓励竞争对手,并受到对通用人工智能(AGI)的焦虑所驱动。
核心论点是,美国的重心已经从*生产*和公民的繁荣转向*消费*和技术霸权,往往用于可疑的目的,例如进攻性军事应用。作者观察到香港一个更具功能的社会,质疑在当前发展轨迹似乎对其自身人民不利的情况下,究竟意味着什么“支持美国”。最终,作者表达了对美国的爱,但哀叹其目前的道路,希望美国的成功等同于和平与繁荣,而不仅仅是技术和军事力量。
## 程序化道路生成:连接曲线
本文详细介绍了生成平滑、逼真道路背后的核心几何原理。其基础在于“剖面”——道路的抽象横截面,充当控制点,类似于贝塞尔曲线。这些剖面定义了道路*如何*弯曲,而不是定义整个道路形状。
挑战在于仅使用直线和圆弧平滑地连接这些剖面。解决方案利用“圆角”构造:从每个剖面的端点延伸直线,找到它们的交点,然后用弧线和线段连接。
然而,简单的弧线并不总是足够的,尤其是在道路需要改变方向(“S”形曲线)时。在这种情况下,使用三次埃尔米特样条曲线计算一个中间剖面——一条由起点/终点及其切线定义的平滑曲线——并将其放置在样条曲线的拐点附近。
虽然存在边缘情况,但作者实施了一个设计约束:防止用户创建需要过于复杂解决方案的情况。这确保了鲁棒性。下一步是处理道路交叉口,并将这些构建块拼接成完整的网络。最终,这种方法提供了一个灵活的系统,用于创建多样且可信的道路布局。