You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于方位角与高度的球面区域着色及球面直方图优化需求

球面直方图单元格着色与遍历问题

问题背景

我正在构建球面直方图,数据点为纬度和经度值,需要基于位置而非仅按索引为球体的指定单元格区域着色。此前针对部分方位角(azimuth)和高度角(elevation)区域遗漏的问题找到过解决方案,但该方案存在一处azimuth区域空白,且遍历排序不符合预期。

现有代码

n = 20;
[x,y,z] = sphere(n);

r = 1;
surf(r.*x,r.*y,r.*z,'FaceColor', 'white', 'FaceAlpha',0); %// Base sphere
hold on;

for countAz = 1:1:n
    for countE = 1:1:n
        % Linear index for a 2x2 patch of the matrices
        idx = countAz + [0,1,n+(1:2)] + (countE-1)*n; 
        % Pull out the coordinates, reshape for surf
        x2 = x(idx); x2 = reshape(x2,2,2);
        y2 = y(idx); y2 = reshape(y2,2,2);
        z2 = z(idx); z2 = reshape(z2,2,2);
                        
        random_color = rand(1,3);
        surf(r*x2,r*y2,r*z2,'FaceColor',random_color, 'FaceAlpha',1);
    end
end

异常现象

  • 固定countAz仅改变elevation时,出现螺旋效果,理论上azimuth应保持不变
  • 固定countE仅改变azimuth时,会为给定azimuth索引的所有elevation层级着色,与预期效果相反
  • 存在azimuth区域空白的问题

需求

求一种更系统化的遍历elevation和azimuth范围的方法,避免出现空白单元格。期望实现:先遍历某一elevation范围内、由两个azimuth值界定的所有单元格,再进入下一elevation层级,以便将输入的经纬度值对应到内层循环对应的azimuth和elevation值。

内容的提问来源于stack exchange,提问作者yes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 12:40:22