javascript - CreateJS EaselJS - 不同形状的旋转处理不一致

标签 javascript rotation html5-canvas easeljs createjs

这是一个 fiddle 动画,显示了 EaselJS 旋转形状的方式的这种不一致:

fiddle me this

创建星形、圆形、矩形和圆 Angular 矩形并将其放置在完全相同的 x,y 位置

    rect.x = star.x = circle.x = rrect.x = stage.canvas.width  / 2;
    rect.y = star.y = circle.y = rrect.y = stage.canvas.height / 2;

然后它们在刻度循环中以完全相同的方式旋转:

rect.rotation = circle.rotation = rrect.rotation = star.rotation += 1;

所有形状都具有相同的 regX 和 regY 值(零)。

结果,如 fiddle 中所示,显示了一些具有居中旋转的对象和其他具有偏移旋转的对象。

对我来说,这看起来很困惑和令人困惑,但如果有人可以帮助并纠正我看待这个问题的方式,我将不胜感激。

最佳答案

这只是由于 Canvas API 的工作方式所致。矩形和圆弧从左上角绘制,而圆形和多星形从中心绘制。

我已经修改了你的 fiddle 来调整 regX 和 regY (就像你未使用的 rect1 形状一样)。绘制左上角形状时,您还可以调整负数的 x/y。

// Offset your regX/Y
shape.graphics.beginStroke("#00f").drawRect(0,0,40,40);
shape.regX = shape.regY = 20;

// Offset your draw operations' center point. This is my usual approach
shape.graphics.beginStroke("#f00").drawRect(-20,-20,40,40);

这是更新的 fiddle :https://jsfiddle.net/lannymcnie/djdcgp9m/2/

关于javascript - CreateJS EaselJS - 不同形状的旋转处理不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32008646/

相关文章:

ios - 从纵向模式切换到横向模式时重新排序 View (iOS Xcode swift)

android - 旋转谷歌地图而不是 MapView

用于检查用户名可用性的 Javascript 帖子不起作用

javascript - 没有 p 标签的 Div 文本选择器

javascript - 是否可以使用 JavaScript 和 OpenOffice 构建网络办公应用程序?

html5-canvas - 使用 WebGL 绘制图像

Javascript 将canvas 转换为img

javascript - 脚本5007。 IE7无法读取函数

swift - 旋转手势产生不需要的旋转

javascript - HTML5 大 Canvas - 移动和缩放包括背景在内的整个内容