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

如何用GNU Octave在环面上实现K5的平面嵌入?

在环面上实现K5完全图嵌入(GNU Octave实现)

核心思路

K5是5个顶点两两相连的完全图,环面是少数能无交叉嵌入K5的曲面之一。要实现顶点和边均位于环面表面,需利用环面参数方程定义顶点位置,并结合环面的拓扑周期性绘制不穿过内部的边。

完整实现代码

% 环面参数:am为管半径,rm为环面中心到管中心的距离
am = 1.;
rm = 3.;

% 生成高采样率环面网格,提升平滑度
t = linspace(-pi, pi, 32);
p = linspace(0., 2.*pi, 32);
[t,p] = meshgrid(p,t);
x = (rm + am.*cos(p)).*cos(t);
y = (rm + am.*cos(p)).*sin(t);
z = am.*sin(p);

% 绘制半透明环面,方便观察内部边
hsurf = surf(x,y,z);
axis equal;
set(hsurf, 'FaceColor','interp','FaceAlpha',0.5,'EdgeAlpha',0.25);
hold on;

% 定义K5的5个顶点在环面上的参数坐标(θ, φ)
num_verts = 5;
theta_vals = linspace(0, 2*pi, num_verts);  % 纬圈角度分布
phi_vals = linspace(0, 2*pi, num_verts);   % 经圈角度分布

% 计算每个顶点的3D坐标
verts = zeros(num_verts, 3);
for i = 1:num_verts
    verts(i,1) = (rm + am*cos(theta_vals(i))) * cos(phi_vals(i));
    verts(i,2) = (rm + am*cos(theta_vals(i))) * sin(phi_vals(i));
    verts(i,3) = am*sin(theta_vals(i));
end

% 绘制红色实心顶点标记
scatter3(verts(:,1), verts(:,2), verts(:,3), 100, 'r', 'filled');

% 遍历所有顶点对,绘制环面表面的边
for i = 1:num_verts
    for j = i+1:num_verts
        % 获取两个顶点的参数坐标
        theta1 = theta_vals(i);
        phi1 = phi_vals(i);
        theta2 = theta_vals(j);
        phi2 = phi_vals(j);
        
        % 利用环面周期性选择φ方向最短路径,避免边穿入内部
        d_phi = phi2 - phi1;
        if abs(d_phi) > pi
            phi2 = phi2 - sign(d_phi)*2*pi;
        end
        
        % 生成边的采样点
        s = linspace(0, 1, 50);
        theta_s = theta1 + s*(theta2 - theta1);
        phi_s = phi1 + s*(phi2 - phi1);
        
        % 计算边的3D坐标并绘制
        x_edge = (rm + am.*cos(theta_s)).*cos(phi_s);
        y_edge = (rm + am.*cos(theta_s)).*sin(phi_s);
        z_edge = am.*sin(theta_s);
        plot3(x_edge, y_edge, z_edge, 'b', 'LineWidth', 1.5);
    end
end

hold off;
view(3);

代码说明

  • 环面优化:提升网格采样数至32,让环面显示更平滑;半透明设置便于观察被遮挡的边。
  • 顶点分布:将5个顶点均匀分布在环面的经纬圈上,减少边的重叠交叉。
  • 边的处理:通过调整φ参数利用环面周期性,确保边沿表面最短路径绘制,不会穿入环面内部。
  • 可视化区分:用红色实心点标记顶点,蓝色线条绘制边,清晰区分图元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 14:39:52