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

Julia中如何绘制n边形等各类几何形状?

Julia绘制正n边形及通用几何图形方案

Julia生态中有成熟的工具可以直接生成各类几何图形,不需要手动拼接线段或者逐点计算坐标。

方案1:使用Shapes.jl内置正多边形构造函数

这是最简便的方式,Shapes.jl提供了各类常用几何图形的原生实现,配合Plots.jl可以直接绘制:
首次使用时先安装依赖:

using Pkg
Pkg.add(["Plots", "Shapes"])

绘制示例:

using Plots, Shapes

# RegularPolygon参数依次为:中心x坐标、中心y坐标、外接圆半径、边数
n = 32
pgon = RegularPolygon(0, 0, 1, n)

# aspect_ratio=:equal参数保证图形不会被拉伸,还可自定义填充、边框样式
plot(pgon, aspect_ratio=:equal, fillalpha=0.2, linecolor=:navy, label="正$(n)边形")

如果要画正方形,仅需将边数n设为4即可。

方案2:轻量自定义实现

如果不想额外引入Shapes依赖,也可以自己封装一个正多边形生成函数,代码量非常小:

using Plots

function get_regular_polygon(n::Int, radius=1, center_x=0, center_y=0)
    # 生成n+1个点保证多边形闭合
    angle = range(0, 2π, length = n+1)
    # 增加π/2偏移让正多边形第一个顶点朝上,不需要可删除该偏移量
    x = @. center_x + radius * cos(angle + π/2)
    y = @. center_y + radius * sin(angle + π/2)
    return x, y
end

# 绘制正方形示例
x, y = get_regular_polygon(4)
plot(x, y, aspect_ratio=:equal, label="正方形", linewidth=2)

除了正多边形外,矩形、椭圆、星形等常用几何图形也都可以通过Shapes.jl的对应内置接口直接生成绘制,无需手动计算坐标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 06:33:03