有人可以帮我解决几何变换问题吗?

时间:2011-09-18 17:27:39

标签: javascript canvas geometry transformation geometric-arc

我需要在两个给定点之间画一个圆弧。我也有弧的半径。我知道这可以使用标准canvas API来完成,但我也需要处理椭圆弧的情况。此代码是一种通用解决方案。现在唯一的问题是它不起作用!

此代码背后的数学概念位于https://math.stackexchange.com/questions/53093/how-to-find-the-center-of-an-ellipse

我的JS代码就是它的实现。我的JS代码可以在http://jsfiddle.net/BkEnz/2/找到。理想情况下,两个圆圈都应该穿过两个小粉红点。

我希望有人能指出我朝着正确的方向前进。我过去几天一直试图解决这个问题!

1 个答案:

答案 0 :(得分:0)

解决了这个问题。更正的工作代码位于http://jsfiddle.net/ZxRBT

注意这一行

var t = translate(-R1R2x, -R1R2y, IDENTITY_TRANSFORM());

在我之前的代码版本中,这一行是

var t = translate(-R1R2x, -R1R2y, sr);

所以当我计算C1C2的值时,请使用以下代码

C1 = compose(vut, [[R1x],[R1y],[1]]);
C2 = compose(vut, [[R2x],[R2y],[1]]);

我还将sr作品应用于R1x,R1yR2x,R2y,但这些点已经在sr坐标中。

这是一个严重的错误,我很长一段时间都忽略了这一点。