gpt4 book ai didi

algorithm - 根据椭圆与长轴或短轴的角度求出椭圆的半径

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:53:03 24 4
gpt4 key购买 nike

我正在使用 UE3 制作我的 HUD。我在 Canvas 上完成了它,并且有一个圆形按钮 - 问题是在非正方形的屏幕上,按钮是一个椭圆形。因此,这会导致检测鼠标是否“悬停”在按钮上时出现问题。

这是因为整个椭圆的半径与圆形不同。

我的下划线问题是:

如果我知道,如何算出椭圆相对于一个点(鼠标位置)的半径:

  • 长轴和短轴的半径
  • 与点(鼠标位置)的轴(长轴和短轴)的角度

最佳答案

在椭圆以原点为中心且长轴和短轴分别平行于 x 轴和 y 轴的简单情况下,椭圆可以通过以下方程参数化 x = a cos(t )y = b sin(t),其中 ab 是长轴和短轴, t 是从 0 到 2pi 变化的角度。所以在这种情况下,为了回答你的问题,角度 t 处的半径是

r = sqrt( x^2 + y^2 ) = sqrt( a^2 cos^2(t) + b^2 sin^2(t) )

现在,这可以通过以下方式变得更加复杂

(i) 椭圆不以 (0,0) 为中心

(ii) 长轴和短轴不平行于 x 轴和 y 轴,比如因为长轴与正 x 轴形成角度 t0。

(iii) (i) 和 (ii) 的组合。

但是,上述解决方案也可以通过适当的修改应用于这些情况。对于 (i),从上面等式中的 x 和 y 中减去中心以获得距中心点的半径。对于 (ii),上述等式适用于变量 x',y',其中 (x',y')^T = R(t0) (x,y)^T 其中 R(t0) 是 rotation matrix正确定位椭圆。因此,为 x' 和 y' 形成上面的方程,然后通过求解上面的矩阵方程代入 x 和 y 的表达式。

关于algorithm - 根据椭圆与长轴或短轴的角度求出椭圆的半径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17130079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com