老干部活动中心网站建设方案,icp备案网站信息修改,电脑页游排行榜前十名,平面广告设计培训您想使用椭圆Arc命令。不幸的是#xff0c;这需要你指定起点和终点的笛卡尔坐标(x#xff0c;y)而不是你拥有的极坐标(半径#xff0c;角度)#xff0c;所以你必须做一些数学运算。这是一个应该工作的JavaScript函数(虽然我还没有测试过)#xff0c;我希望它是相当不言自明…您想使用椭圆Arc命令。不幸的是这需要你指定起点和终点的笛卡尔坐标(xy)而不是你拥有的极坐标(半径角度)所以你必须做一些数学运算。这是一个应该工作的JavaScript函数(虽然我还没有测试过)我希望它是相当不言自明的function polarToCartesian(centerX, centerY, radius, angleInDegrees) {var angleInRadians angleInDegrees * Math.PI / 180.0;var x centerX radius * Math.cos(angleInRadians);var y centerY radius * Math.sin(angleInRadians);return [x,y];}哪个角度对应于哪个时钟位置将取决于坐标系; 只需交换和/或否定sin / cos术语。arc命令具有以下参数rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y第一个例子rx ry 25且x-axis-rotation 0因为你想要一个圆而不是一个椭圆。您可以使用上面的函数分别计算起始坐标(您应该过去M)和结束坐标(xy)分别得出(200,175)和约(182.322,217.678)。到目前为止鉴于这些限制实际上可以绘制四个弧因此两个标志选择其中一个。我猜你可能想要large-arc-flag在减小角度的方向上绘制一个小弧(意思是 0)(意思是sweep-flag 0)。总之SVG路径是M 200 175 A 25 25 0 0 0 182.322 217.678对于第二个示例(假设您指的是相同的方向因此是一个大弧)SVG路径是M 200 175 A 25 25 0 1 0 217.678 217.678我再次测试过这些。(编辑2016-06-01)如果像clocksmith一样您想知道他们为什么选择这个API请查看实施说明。他们描述了两种可能的弧参数化“端点参数化”(他们选择的那个)和“中心参数化”(这就像问题所用的那样)。在“端点参数化”的描述中他们说端点参数化的一个优点是它允许一致的路径语法其中所有路径命令都以新的“当前点”的坐标结束。所以基本上它是弧的副作用被视为更大路径的一部分而不是它们自己的独立对象。我想如果你的SVG渲染器不完整它可以跳过它不知道如何渲染的任何路径组件只要它知道它们采用了多少个参数。或者它可以实现具有许多组件的路径的不同块的并行渲染。或许他们这样做是为了确保舍入错误不会沿着复杂路径的长度积累。实现说明对于原始问题也很有用因为它们有更多的数学伪代码用于在两个参数化之间进行转换(我在第一次写这个答案时没有意识到)。