问题标签 [spherical-coordinate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
49 浏览

matlab - 在 Matlab 中用球坐标写方程

我想在matlab中实现这个球坐标方程,但我真的很困惑如何从中获取j1的值。我应该定义 phie1 和 theeta1 的哪些值?

虽然我是这样实现的,但它给出了错误:

0 投票
0 回答
42 浏览

rotation - 将欧拉角转换为球角

现在我正在使用四元数在 3D 空间中获得 2D 平面的旋转(偏航俯仰滚动)。我的问题是如何将笛卡尔坐标系的这三个角度(α、β、γ)转换为球面角 θ 和 φ。非常感谢。

干杯

0 投票
1 回答
57 浏览

loops - 为什么 Vector3 不更新 Unity3d

一段时间以来,我一直在这方面失去理智。只需忽略被注释掉的部分(不是问题)。我正在尝试进行 360 度经度和 180 度经度扫描,然后进行射线投射。但显然方向向量(在本例中为 Dir)停留在 (0, 0, -1)。我检查了 xy 和 z 值,它们工作正常。我现在不知道出了什么问题。在我自杀之前请回答。

0 投票
0 回答
36 浏览

javascript - Three.js Blender 风格的轨道控制 - 沿球面经度不受限制的移动

我正在尝试构建一个搅拌机风格的轨道控制器。这是代码。

我确实可以在球体的纬度上不受限制地移动相机,但纵向移动仅限于两极。

有人可以帮助我沿经度不受限制地移动。

沙盒

0 投票
1 回答
69 浏览

fft - Healpix / Healpy:我如何使用 healpy 对天空进行 SHT 处理?

Healpix 是一个非常有用的软件,可以对球体进行球面分析。例如,我们可以map2alm用来分析 Healpix RING 有序映射并返回球谐函数。这里的参数map应该是一个数组$Npix = 12*Nside^2$。如果我只想对一个补丁进行分析,而不是对一个完整的天空进行分析。一些环权重可用于在 Healpix 中屏蔽地图。但如果Npix很大,实际上数组map会太大而无法分配到内存中。因此,如何在天空补丁上进行球谐函数变换?

0 投票
0 回答
85 浏览

area - 计算一个多边形在地球表面的面积

出于教育目的,我正在尝试编写一个 TS 函数,该函数将接受坐标数组并计算多边形的面积。

我正在使用鞋带算法成功计算多边形的面积。在运行算法之前,我将纬度/经度坐标转换为它们的笛卡尔格式。

我将此与https://www.mathopenref.com/coordpolygonareacalc.html的结果进行了比较,该结果输出:774321690.7119141。

但是,当我将此与谷歌地图等工具进行比较时,它是不正确的(答案是 1513405095.71 平方米)。我应该应用地球的球形特性来获得准确的答案,但我不确定如何。我试过 S = [θ - (n - 2)π]R^2 其中 θ 是角度的总和,n 是角的数量。

任何帮助将不胜感激,谢谢!

0 投票
0 回答
35 浏览

polygon - 在以点为界的球体上查找多边形区域

我正在尝试在球体上找到多边形的面积。我有方位角和仰角(纬度/经度)。有没有一种算法可以做到这一点。如果它在平面上,我可以使用凸包进行近似,但这些点占据了球体的很大一部分。

0 投票
0 回答
41 浏览

python - 将 3D 笛卡尔数据插值到球面

我有一个形状为 f[nz,ny,nx] 的某个数量 f 的 3D 数据集,其中 nz,ny,nx 是对应的笛卡尔网格 z[nz]、y[ny]、x[nx] 的索引。在我的特殊情况下,nz=ny=nz=256。这个笛卡尔盒子的中心是(0,0,0)。在空间的同一点,我想在笛卡尔盒子内放置一个半径为 r=1 的球体。现在,我想在球体表面对 f 进行插值,最终得到 f(phi,theta,r=1),其中 phi 是经度,theta 是纬度。

我已经看到了许多不同的方法来解决与此类似的问题(主要是在 Python 和 Matlab 中),但还没有能够做到。有人做过这个或知道如何做吗?谢谢!

0 投票
1 回答
242 浏览

python - 在 3D 球体上插值非均匀分布的点

根据https://www.cmu.edu/biolphys/deserno/pdf/sphere_equi.pdf中描述的算法(并在下面的代码中实现),我在单位球面上有几个点。在每一点上,我都有一个值,在我的特定情况下,它代表 1 减去一个小错误。如果这很重要,错误就在其中[0, 0.1],所以我的值在[0.9, 1].

可悲的是,计算错误是一个代价高昂的过程,我无法根据需要计算尽可能多的点。不过,我希望我的情节看起来像是在策划一些“连续”的事情。所以我想为我的数据拟合一个插值函数,以便能够采样尽可能多的点。

经过一点研究,我发现scipy.interpolate.SmoothSphereBivariateSpline似乎完全符合我的要求。但我不能让它正常工作。

问题:我可以用什么来插值(样条、线性插值,目前任何东西都可以)我在单位球体上的数据?答案可以是“您误用scipy.interpolation了,这是执行此操作的正确方法”或“此其他功能更适合您的问题”。

应该可以执行numpyscipy安装的示例代码:

上面代码的问题:

  • 使用原样的代码,我有一个 code>interpolator初始化实例 时引发。
  • 上面的问题似乎是说我应该在scipy.interpolate.SmoothSphereBivariateSplines的参数上更改 that is one 的值。我测试了从到的不同值,上面的代码总是引发上述异常或: s0.0001100000

编辑:我在这里包括我的发现。它们不能真正被视为解决方案,这就是我正在编辑而不是作为答案发布的原因。

通过更多研究,我发现了这个问题Using Radial Basis Functions to Interpolate a Function on a Sphere。作者和我有完全相同的问题,并使用了不同的插值器:scipy.interpolate.Rbf。我通过替换插值器和绘图来更改上面的代码:

这段代码运行平稳,结果如下: 在此处输入图像描述

插值似乎没问题,除了一条不连续的线,就像引导我上这堂课的问题一样。答案之一给出了使用不同距离的想法,更适应球坐标:Haversine 距离。

执行时会发出警告:

并且结果完全不是预期的:插值函数的值可能会上升到-1明显错误的值。

0 投票
0 回答
13 浏览

opencv-python - 将立方体平面切片上的点投影到球坐标

我正在将我的 equi-rectangular 图像转换为立方体贴图,并获得六个不同边的切片,每边为 1024px。我想知道如何在任何这些切片上选择一个点并将其投影回球坐标。请帮忙