Opera:在JavaScript中绘制椭圆形的问题

时间:2011-08-12 12:49:16

标签: javascript html5 canvas opera

仅仅为了娱乐和学习目的,我目前正在编写一个基于javascript的绘图应用程序,但是我遇到了一个带有椭圆形绘图代码的跨浏览器问题。

这是我的代码,简化为简单的椭圆函数:

function Oval(context, x, y, radiusX, radiusY, color, filled) {
  if ((radiusX === 0) || (radiusY === 0)) {
    return;
  }
  context.save();
  context.translate(x, y);
  if (radiusX !== radiusY) {
    context.scale(1, radiusY / radiusX);
  }
  context.beginPath();
  context.arc(0, 0, radiusX, 0 , 2 * Math.PI);
  context.closePath();
  context.restore();
  if (filled === true) {
    context.fillStyle = color;
    context.fill();
  } else {
    context.strokeStyle = color;
    context.stroke();
  }
}

var ctx = c.getContext("2d");
Oval(ctx, 150, 150, 100, 149, "#663399", false);
<canvas id="c" width="300" height="300"></canvas>

这适用于当前稳定版本的Firefox,Chrome,Internet Explorer和Safari。但Opera似乎并不喜欢它。可能是什么问题?

2 个答案:

答案 0 :(得分:3)

这是因为Opera 需要 arc

的最后一个参数

因此,将其更改为context.arc(0, 0, radiusX, 0 , 2 * Math.PI, false);,您将成为金色。

答案 1 :(得分:1)

我们已经在内部版本中修复了这个问题,并且很快就会在稳定版本中发布!