【发布时间】:2014-12-01 17:59:08
【问题描述】:
我想用 Kinetic.js 创建一个多边形,我知道 width、height、rotation 和 点数 用于多边形。
我认为这可以通过使用 RegularPolygon 对象来实现,但为此我必须为半径设置一个值。会像这样创建一个三角形:
var hexagon = new Kinetic.RegularPolygon({
x: stage.width()/2,
y: stage.height()/2,
sides: 3,
radius: 70,
fill: 'red',
});
在此处查看正在创建的类似多边形: http://www.html5canvastutorials.com/kineticjs/html5-canvas-kineticjs-regular-polygon-tutorial/
结果看起来像这样:
但是如果我想创建一个宽度应该是高度两倍的三角形呢?看起来像这样:
据我所知,仅通过调整半径是不可能的。
如何为任何多边形实现这一点?请注意,我不知道开始点的值(尽管可以计算它们)。我认为 scaleX 和 scaleY 可能可以使用,但是否有可能以更简单的方式实现它?我想直接设置宽度和高度。
【问题讨论】:
-
KineticJS 多边形是正多边形(所有边的长度相等)。缩放正三角形很尴尬,因此您最好的解决方案可能是只绘制一条形成三角形的折线。
-
你有我如何做到这一点的例子吗?如何在知道区域的宽度、高度、旋转以及点数的情况下计算点数?
标签: javascript kineticjs