我需要在两个给定点之间画一个圆弧。我也有弧的半径。我知道这可以使用标准canvas
API来完成,但我也需要处理椭圆弧的情况。此代码是一种通用解决方案。现在唯一的问题是它不起作用!
此代码背后的数学概念位于https://math.stackexchange.com/questions/53093/how-to-find-the-center-of-an-ellipse。
我的JS代码就是它的实现。我的JS代码可以在http://jsfiddle.net/BkEnz/2/找到。理想情况下,两个圆圈都应该穿过两个小粉红点。
我希望有人能指出我朝着正确的方向前进。我过去几天一直试图解决这个问题!
答案 0 :(得分:0)
解决了这个问题。更正的工作代码位于http://jsfiddle.net/ZxRBT。
注意这一行
var t = translate(-R1R2x, -R1R2y, IDENTITY_TRANSFORM());
在我之前的代码版本中,这一行是
var t = translate(-R1R2x, -R1R2y, sr);
所以当我计算C1
和C2
的值时,请使用以下代码
C1 = compose(vut, [[R1x],[R1y],[1]]);
C2 = compose(vut, [[R2x],[R2y],[1]]);
我还将sr
作品应用于R1x,R1y
和R2x,R2y
,但这些点已经在sr
坐标中。
这是一个严重的错误,我很长一段时间都忽略了这一点。