Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有人能帮我解决一个几何变换问题吗?_Javascript_Canvas_Geometry_Transformation_Geometric Arc - Fatal编程技术网

Javascript 有人能帮我解决一个几何变换问题吗?

Javascript 有人能帮我解决一个几何变换问题吗?,javascript,canvas,geometry,transformation,geometric-arc,Javascript,Canvas,Geometry,Transformation,Geometric Arc,我需要在两个给定点之间画一条圆弧。我还有弧的半径。我知道这可以使用标准的画布API来完成,但我也需要处理椭圆弧的情况。此代码是一个通用的解决方案。现在唯一的问题是它不起作用 此代码背后的数学概念位于 我的JS代码就是它的实现。我的JS代码可以在上找到。理想情况下,两个圆圈都应该穿过两个粉红色小点 我希望有人能给我指出正确的方向。过去几天我一直在努力解决这个问题 修复了此问题。更正后的工作代码位于 注意那条线 var t = translate(-R1R2x, -R1R2y, IDENTITY_T

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

此代码背后的数学概念位于

我的JS代码就是它的实现。我的JS代码可以在上找到。理想情况下,两个圆圈都应该穿过两个粉红色小点


我希望有人能给我指出正确的方向。过去几天我一直在努力解决这个问题

修复了此问题。更正后的工作代码位于

注意那条线

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]]);
我还在R1x,R1y和R2x,R2y上应用sr合成,但这些点已经在sr坐标中了


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

问题出在哪里?是计算错误,还是无法根据计算结果绘制圆弧?@Vlad我不确定,但我认为计算在某个地方出错。修复了它!更正的代码位于。请将您的解决方案作为答案发布,然后接受您自己的答案以将此问题标记为已解决。