【问题标题】:Opera: Problems drawing an oval in JavaScriptOpera:在 JavaScript 中绘制椭圆的问题
【发布时间】:2011-08-12 12:49:16
【问题描述】:

只是为了好玩和学习目的,我目前正在编写一个基于 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 似乎并不喜欢它。可能是什么问题?

【问题讨论】:

    标签: javascript html canvas opera


    【解决方案1】:

    这是因为 Opera 需要arc的最后一个参数

    所以把它改成context.arc(0, 0, radiusX, 0 , 2 * Math.PI, false);,你会是金子。

    【讨论】:

    • 哇,Opera 真的搞砸了。我很确定这从 Opera 11 开始,因为我现有的应用程序最近停止了画圈。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-30
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多