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

如何基于半长轴、半短轴数组批量绘制椭圆?

批量绘制椭圆的解决方案

嗨!你现在只画出单个椭圆,是因为代码里仅用到了x[5]和y[5]这一组数据。要批量绘制所有配对的椭圆,只需要遍历x和y数组的每一组元素,逐个生成椭圆坐标并绘制就可以啦。

核心思路

  • 保留你原有的半长轴x和半短轴y的计算逻辑,这部分没问题
  • 用循环遍历x和y的每一对配对值
  • 对每一对值,计算对应的椭圆坐标并调用plt.plot()绘制
  • 添加样式区分(比如透明度),同时设置等比例坐标轴避免椭圆变形

修改后的完整代码

import numpy as np
import pandas as pd
import math as m
import matplotlib.patches as patches
import matplotlib.pyplot as plt

x1=6.5 #Approach distane measurement point
y1=0.45 #Lateral distance measurement point
Nx=np.linspace(80,60,10)
Ny=np.linspace(80,60,10)
c=20

# 计算半长轴数组x
a=(10**(Nx/c))
b=(10**(86/20))
x=x1*(a/b) #semi major axis

# 计算半短轴数组y
a=(10**(Ny/c))
b=(10**(83/20))
y=y1*(a/b) #semi minor axis

resolution = 1000
t = np.linspace(0, 2*np.pi, resolution)

# 循环遍历每一组x和y的配对值,批量绘制椭圆
for xi, yi in zip(x, y):
    # 原代码旋转角度为0,这里简化计算;如果需要旋转,保留你的旋转逻辑即可
    xr = xi * np.cos(t)
    yr = yi * np.sin(t)
    # 添加透明度避免椭圆重叠看不清
    plt.plot(xr, yr, alpha=0.7)

# 设置等比例坐标轴,防止椭圆被拉伸变形
plt.axis('equal')
# 显示图形
plt.show()

print(x)

额外优化提示

  • 如果需要给每个椭圆添加标签或不同颜色,可以在循环里加入label参数,最后调用plt.legend()显示图例
  • 若需要旋转椭圆,替换循环里的坐标计算为你原有的旋转逻辑即可(比如旋转45度):
    angle = m.radians(45)
    xr = xi * np.cos(t) * np.cos(angle) - yi * np.sin(t) * np.sin(angle)
    yr = yi * np.sin(t) * np.cos(angle) + xi * np.cos(t) * np.sin(angle)
    

这样就能一次性画出所有配对的椭圆啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:12:40