小编LIX*_*Xer的帖子

贝塞尔曲线和椭圆的关系?

我想在 html5 画布中画一个椭圆,我在stackoverflow 中找到了一个很好的方法。但我还有另一个问题。

function drawEllipse(ctx, x, y, w, h) {
  var kappa = 0.5522848;
      ox = (w / 2) * kappa, // control point offset horizontal
      oy = (h / 2) * kappa, // control point offset vertical
      xe = x + w,           // x-end
      ye = y + h,           // y-end
      xm = x + w / 2,       // x-middle
      ym = y + h / 2;       // y-middle

  ctx.beginPath();
  ctx.moveTo(x, ym);
  ctx.bezierCurveTo(x, ym - oy, …
Run Code Online (Sandbox Code Playgroud)

html bezier canvas relationship

6
推荐指数
1
解决办法
8207
查看次数

javascript中的'in'关键字是什么意思?

我找到了这段代码:

if (!("aa" in window)) {  
    alert('oh my god');
    var aa = 1;  
}  
alert("aa" in window);
alert(aa);
Run Code Online (Sandbox Code Playgroud)

此代码第二个警报是警报true,但是,第三个警报是"未定义",并且"if"中的警报未运行.为什么?

我认为原因是in; 它的作用是什么?

我在谷歌上搜索过,但一无所获,因为谷歌认为"在&srquo; 是一个过滤词.

我们总是使用inin循环,但是,坦率地说,我使用它但是并不真正理解它.

javascript

5
推荐指数
1
解决办法
3006
查看次数

画布:如何在一个转换语句中完成翻译、倾斜、旋转……?

最近几天我在学习“变换”,现在我知道如何通过变换的矩阵进行翻译、旋转、倾斜、缩放。但是如果我想在一个转换语句中完成上述所有操作,我该怎么做?

ctx.transform(a,b,c,d,e,f);
Run Code Online (Sandbox Code Playgroud)

当我们想通过变换旋转某些东西时,我们必须为每个(a,b,c,d)发布 4 个参数,所以,如果我想旋转和缩放,例如,旋转 30 度和缩放(1.5,2),可以变换是同时完成的吗?那么 (a,b,c,d) 的值是多少?以及如何计算它们?

另一个问题:转换中有顺序吗?我的意思是如果我使用变换来旋转、缩放和平移,它们之间的顺序是什么?毕竟顺序很重要,“先翻译,再缩放”和“先缩放,再翻译”,会得到不同的结果。

javascript canvas transform

2
推荐指数
1
解决办法
2786
查看次数

如果不知道之前做了什么,如何恢复到默认状态?

一个画布,已经做了一些事情,如缩放,翻译和旋转,但我不知道它是否改变了,它之前没有保存,所以我不能使用restore()方法来恢复.

我现在会画一些东西,但是如果canvas.context已翻译(或其他),我的操作将会转到错误的位置.

// no save
ctx.translate(300,100);
ctx.scale(1,0.5);
ctx.rotate(Math.PI/2);
...
// to do something
...
// at now , how i go back the default?
Run Code Online (Sandbox Code Playgroud)

所以我想知道如何才能恢复默认状态并正确执行我的操作?越简单越好,谢谢

javascript html5 canvas

1
推荐指数
1
解决办法
37
查看次数

标签 统计

canvas ×3

javascript ×3

bezier ×1

html ×1

html5 ×1

relationship ×1

transform ×1