- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定一个球形段(它的半径、方向和角度),我如何以最简单的方式计算它的轴对齐边界框?
请注意,我对任意方向的片段感兴趣,而盒子必须与轴对齐。紧密定向的边界框计算起来很简单。
问题可以简化为球冠的边界框,但我也找不到算法。
最佳答案
为简单起见,假设我们平移和缩放坐标系,使中心位于 (0, ..., 0),半径为 1。令 u 为坐标系的端点段(使得‖u‖² = 1)并让以弧度为单位的角度为 θ。蓝色部分是所有点v 使得‖v‖² ≤ 1 和u·v ≥ ‖< strong>u‖ ‖v‖ cos θ = ‖v‖ cos θ。要找到 d 维度的轴对齐边界框,我们需要找到 2d 向量 v 来最小化/最大化每个单独的坐标,即,给定一个向量 e 使得 +e 或 -e 属于轴基(例如,e> = (0, −1, 0, ..., 0)) 我们希望最大化 e·v 受 v 的限制>.
maximize e·v
subject to
‖v‖² ≤ 1
u·v ≥ ‖v‖ cos θ
我们首先观察到,不失一般性,‖v‖ = 0 或‖v‖ = 1,因为目标是线性的,其他点位于这些的凸组合。让我们关注后一种情况。
maximize e·v
subject to
‖v‖² = 1
u·v ≥ cos θ
其次,在e和u所跨越的空间中存在一个最优解。给定任何最优解,我们可以在不增加其范数或用e或u改变点积的情况下将正交投影引入该空间,因此投影也是可行和最优的.
因此,我们通过让 v = αe + βu 根据系数 α 和 β 重写问题。
maximize e·(αe + βu)
subject to
‖αe + βu‖² = 1
u·(αe + βu) ≥ cos θ
让我们扩展乘积并使用 ‖e‖² = ‖u‖² = 1 的事实。
maximize α + β(e·u)
subject to
α² + 2αβ(e·u) + β² = 1
α(e·u) + β ≥ cos θ
现在我们进行案例分析。忽略线性约束,目标最多为 1,因此解 α = 1 和 β = 0(即 v = e)是最优的。此解仅在e·u ≥ cos θ时可行。
如果此解不可行,则线性约束必须紧:α(e·u) + β = cos θ,或 β = cos θ − α (e·u)。然后我们可以代入,求解得到的二次方程,并采用得分更高的解(除非他们都得分为负,在这种情况下界限为 0)。
关于algorithm - 球扇形边界框(锥球相交),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64687380/
我正在寻找一种方法来绘制给定 Angular 圆扇区。我希望该扇区显示一个 (1:1) 图像作为其背景(仅是该扇区下方的方形尺寸图像的一部分)。 本质上,图像将具有相同的宽度和高度。图像的宽度和高度将
半径为r的圆上的点p(x,y)与圆心O(x0,y0)的关系: x = x0+rcosA; y = y0+rsinA ,A为弧度 1、圆 复制代码 代码如下:
我是一名优秀的程序员,十分优秀!