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

如何根据椭圆方程2x²+y²=100绘制对应SVG椭圆?

如何将椭圆方程2x² + y² = 100转换为SVG的元素

要解决这个问题,核心是把你给定的椭圆方程转换成SVG椭圆元素使用的标准椭圆方程形式,再结合“每单位高度对应1像素”的要求计算出rx和ry的值。

步骤1:将原方程转换为标准椭圆形式

SVG的<ellipse>元素对应的数学方程是:

(x - cx)² / rx² + (y - cy)² / ry² = 1

其中cx/cy是椭圆中心坐标,rx/ry是x/y方向的半轴长度(像素单位)。

你的原方程是2x² + y² = 100,我们把它两边都除以100,转换成标准形式:

2x²/100 + y²/100 = 1
↓
x²/(100/2) + y²/100 = 1
↓
x²/50 + y²/100 = 1

步骤2:匹配参数并计算像素值

对比SVG的标准方程,我们可以直接对应出:

  • 对于y方向:ry² = 100 → ry = 10。根据你“每单位高度对应1像素”的要求,方程里的y轴1单位=1像素,所以ry直接取10像素。
  • 对于x方向:rx² = 50 → rx = √50 ≈ 7.071。同样按照像素映射,x方向的半轴长度就是√50像素(约7.071px)。

步骤3:编写SVG代码

结合你给出的中心坐标cx="0"、cy="200",以及填充/描边样式,最终的SVG代码如下:

<svg viewBox="-10 190 20 20" width="200" height="200">
  <!-- viewBox确保椭圆完整显示,参数是[minX, minY, width, height] -->
  <ellipse rx="7.071" ry="10" cx="0" cy="200" fill="silver" stroke="gray"/>
</svg>

可选:如果需要整数像素(按比例缩放)

如果想要避免小数像素,可以按比例放大整个椭圆。比如把所有参数乘以10,这样rx≈70.71,ry=100,椭圆形状比例完全不变,代码如下:

<svg viewBox="-80 100 160 200" width="400" height="400">
  <ellipse rx="70.71" ry="100" cx="0" cy="200" fill="silver" stroke="gray"/>
</svg>

关键总结

  • SVG椭圆的方程和数学上的标准椭圆方程直接对应,只要把原方程归一化到右边为1的形式,就能直接提取rx和ry的平方值。
  • 保持椭圆形状正确的核心是rx/ry = √(50)/10 = 1/√2,不管怎么缩放,这个比值不能变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:13:50