我一直有困难得到一组矩形面对画布块上的某一点大量的前旋转矩形。我遍历一组点,绘制矩形,这些矩形都应该面向某个点。使用Javascript - 写帆布
首先我设置的半径,对焦点和Rectangle
var Angle = Math.PI;
_.each(Points, function(Point) {
var Radius = 10;
var Focus = {
X: 500,
Y: 1000
}
var Rect = [
{
X: (Point.X - Radius/2),
Y: (Point.Y - Radius/2)
},
{
X: (Point.X + Radius/2),
Y: (Point.Y - Radius/2)
},
{
X: (Point.X + Radius/2),
Y: (Point.Y + Radius/2)
},
{
X: (Point.X - Radius/2),
Y: (Point.Y + Radius/2)
}
];
然后,使用下划线,我通过迭代并使用我在另一响应阅读有关方法。
var index = 0;
_.each(Rect, function (V) {
var dx2 = Focus.X - V.X;
var dy2 = Focus.Y - V.Y;
var dx2_ = dx2 * Math.cos(Angle) - dy2 * Math.sin(Angle);
var dy2_ = dy2 * Math.sin(Angle) + dy2 * Math.cos(Angle);
V.X = dx2_ + V.X;
V.Y = dy2_ + V.Y;
Rect[index] = V;
index++;
});
然后一切都在正常的画布上的东西成立。上下文和fillStyle事先被定义。
ctx.beginPath();
ctx.moveTo(Rect[0].X, Rect[0].Y);
ctx.lineTo(Rect[1].X, Rect[1].Y);
ctx.lineTo(Rect[2].X, Rect[2].Y);
ctx.lineTo(Rect[3].X, Rect[3].Y);
ctx.lineTo(Rect[0].X, Rect[0].Y);
ctx.fill();
});
这些初始广场(不旋转每个循环)
不旋转
这是我所得到的,而不是(好像矩形被周围的点,而不是旋转朝点旋转)
将角度设置为pi With angle set to pi http://i47.tinypic.com/25p5kxl.png
我试图得到的行为是让他们面向底部中间。 (500,1000)如果画布是1000x1000。
的jsfiddle:http://jsfiddle.net/nmartin413/cMwTn/7/
我不能为我的生活弄清楚怎么回事错了。如果有什么突出给你,请让我知道:)。很抱歉,很长的一个问题,但这让我非常沮丧。
在此先感谢!
发生的,而不是你的期望是什么? –
对不起 - 忘了提。我在图像前后添加了一些 – nmartin413
为什么不使用fillRect绘制填充的矩形? http://developer.mozilla.org/en-US/docs/Canvas_tutorial/Drawing_shapes – loxxy